您当前的位置:首页 > 计算机 > 编程开发 > Python

Python画各种樱花

时间:03-25来源:作者:点击数:

动态生成樱花

from turtle import *
 
from random import *
 
from math import *
 
 
 
def tree(n,l):
 
    pd()#下笔
 
    #阴影效果
 
    t = cos(radians(heading()+45))/8+0.25
 
    pencolor(t,t,t)
 
    pensize(n/3)
 
    forward(l)#画树枝
 
 
 
    if n>0:
 
        b = random()*15+10 #右分支偏转角度
 
        c = random()*15+10 #左分支偏转角度
 
        d = l*(random()*0.25+0.7) #下一个分支的长度
 
        #右转一定角度,画右分支
 
        right(b)
 
        tree(n-1,d)
 
        #左转一定角度,画左分支
 
        left(b+c)
 
        tree(n-1,d)
 
        #转回来
 
        right(c)
 
    else:
 
        #画叶子
 
        right(90)
 
        n=cos(radians(heading()-45))/4+0.5
 
        pencolor(n,n*0.8,n*0.8)
 
        circle(3)
 
        left(90)
 
        #添加0.3倍的飘落叶子
 
        if(random()>0.7):
 
            pu()
 
            #飘落
 
            t = heading()
 
            an = -40 +random()*40
 
            setheading(an)
 
            dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)
 
            forward(dis)
 
            setheading(t)
 
            #画叶子
 
            pd()
 
            right(90)
 
            n = cos(radians(heading()-45))/4+0.5
 
            pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)
 
            circle(2)
 
            left(90)
 
            pu()
 
            #返回
 
            t=heading()
 
            setheading(an)
 
            backward(dis)
 
            setheading(t)
 
    pu()
 
    backward(l)#退回
 
 
 
bgcolor(0.5,0.5,0.5)#背景色
 
ht()#隐藏turtle
 
speed(0)#速度 1-10渐进,0 最快
 
tracer(0,0)
 
pu()#抬笔
 
backward(100)
 
left(90)#左转90度
 
pu()#抬笔
 
backward(300)#后退300
 
tree(12,100)#递归7层
 
done()

樱花飘落效果

from turtle import *
 
from random import *
 
from math import *
 
 
 
def tree(n,l):
 
    pd()#下笔
 
    #阴影效果
 
    t = cos(radians(heading()+45))/8+0.25
 
    pencolor(t,t,t)
 
    pensize(n/3)
 
    forward(l)#画树枝
 
 
 
    if n>0:
 
        b = random()*15+10 #右分支偏转角度
 
        c = random()*15+10 #左分支偏转角度
 
        d = l*(random()*0.25+0.7) #下一个分支的长度
 
        #右转一定角度,画右分支
 
        right(b)
 
        tree(n-1,d)
 
        #左转一定角度,画左分支
 
        left(b+c)
 
        tree(n-1,d)
 
        #转回来
 
        right(c)
 
    else:
 
        #画叶子
 
        right(90)
 
        n=cos(radians(heading()-45))/4+0.5
 
        pencolor(n,n*0.8,n*0.8)
 
        circle(3)
 
        left(90)
 
        #添加0.3倍的飘落叶子
 
        if(random()>0.7):
 
            pu()
 
            #飘落
 
            t = heading()
 
            an = -40 +random()*40
 
            setheading(an)
 
            dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)
 
            forward(dis)
 
            setheading(t)
 
            #画叶子
 
            pd()
 
            right(90)
 
            n = cos(radians(heading()-45))/4+0.5
 
            pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)
 
            circle(2)
 
            left(90)
 
            pu()
 
            #返回
 
            t=heading()
 
            setheading(an)
 
            backward(dis)
 
            setheading(t)
 
    pu()
 
    backward(l)#退回
 
 
 
bgcolor(0.5,0.5,0.5)#背景色
 
ht()#隐藏turtle
 
speed(0)#速度 1-10渐进,0 最快
 
tracer(0,0)
 
pu()#抬笔
 
backward(100)
 
left(90)#左转90度
 
pu()#抬笔
 
backward(300)#后退300
 
tree(12,100)#递归7层
 
done()

暗色效果樱花

from turtle import *
 
from random import *
 
from math import *
 
 
 
def tree(n, l):
 
    pd()
 
    t = cos(radians(heading() + 45)) / 8 + 0.25
 
    pencolor(t, t, t)
 
    pensize(n / 4)
 
    forward(l)
 
    if n > 0:
 
        b = random() * 15 + 10
 
        c = random() * 15 + 10
 
        d = l * (random() * 0.35 + 0.6)
 
        right(b)
 
        tree(n - 1, d)
 
        left(b + c)
 
        tree(n - 1, d)
 
        right(c)
 
    else:
 
        right(90)
 
        n = cos(radians(heading() - 45)) / 4 + 0.5
 
        pencolor(n, n, n)
 
        circle(2)
 
        left(90)
 
    pu()
 
    backward(l)
 
bgcolor(0.5, 0.5, 0.5)
 
ht()
 
speed(0)
 
tracer(0, 0)
 
left(90)
 
pu()
 
backward(300)
 
tree(13, 100)
 
done()
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门