画过笑脸之后觉得很有趣,搜索过程中看到知乎上的问题,真的是非常漂亮。于是抄写并尝试读懂运行之。
#知乎 画树
from turtle import *
from random import *
from math import *
def tree(n,l):
t=cos(radians(heading()+45))/8+0.25
# radians() 将角度转化为弧度 heading()返回目前朝向度数
pencolor(t,t,t)
pensize(n/ 3)
pd()
forward(l)
if n >0:
b = random() *15 +10 #右分支偏转角度 random() 返回随机生成的在[0,1)范围内的一个实数。
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 #n的范围在0.25~0.75
pencolor(n,n*0.8, n*0.8)
circle(3)
left(90)
pu()
backward(l)
bgcolor(0.5,0.5,0.5) #背景色
hideturtle() #隐藏箭头
tracer(0,0) #??没有动画,立即形成图画
speed('fastest')
pu()
backward(100)
left(90)
pu()
backward(300)
tree(8,100) #递归8层。其实是有9层,每一层 枝干数为
最后一层才是樱花花瓣
done()