from turtle import from random import

from math import *

def tree(n,l):

pd()#下笔

#阴影效果

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)

pencolor(n,n*0.8,n*0.8)

circle(3)

left(90)

#添加0.3倍的飘落叶子

if(random()>0.7):

pu()

#飘落

an = -40 +random()*40

dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)

forward(dis)

#画叶子

pd()

right(90)

pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)

circle(2)

left(90)

pu()

#返回

backward(dis)

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()

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)

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()