Tuttle库是Python内置库,非常有意思。我们今天就利用它画出非常漂亮的树,有一种3D唯美的享受。
效果图如下:
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(headin() - 45)) / 4 + 0.5
pencolor(n, n*0.8, n*0.8)
circle(3)
left(90)
if(random() > 0.7):
pu()
t = heading()
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()
speed(0)
tracer(0, 0)
pu()
backward(100)
left(90)
pu()
backward(300)
tree(12, 100)
done()
完整代码可从以下信息得到下载:
点击这个 链接关注 Linux公社官方微信,关注后回复数字157766。即可得到下载地址。
如果取消关注Linux公社公众号,即使再次关注,也将无法提供本服务!
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx