from turtle import *
import random
def drawTree(length):
if length > 1:
# 缩小树干
if 14 < length < 30:
pensize(4)
# 长度这个范围内为绿叶
elif 5 < length < 15:
color('#04B486')
pensize(3)
# 长度这个范围内为红花
elif 1 < length < 5:
color('#FE2E9A')
pensize(2)
# 其它范围为树干
else:
color('#5E5E5E')
pensize(5)
# 随机角度和长度
randangle = 2 * random.random()
randlen = 2 * random.random()
# 绘制线段,向右调整角度
fd(length)
right(20 * randangle)
drawTree(length - 10 * randlen)
# 向左调整角度
left(40 * randangle)
drawTree(length - 10 * randlen)
# 为什么需要再向右转20度,那是因为一共向左赚了40度,使用 backword 后退,必须是相同
right(20 * randangle)
up()
backward(length)
down()
def fallingFlowers(m):
x, y = -1000, -750
for i in range(30):
up()
goto(x, y)
x += 80
down()
yval = 50
for z in range(m):
a = 100 * random.random()
b = 2 * random.random()
if a > 59:
color('#FE2E9A')
else:
color('#04B486')
circle(2)
up()
goto(x, y + (yval * b))
fd(a)
yval += 50
down()
setworldcoordinates(-1000, -750, 1000, 750)
tracer(200, 1)
# 绘制落叶
fallingFlowers(10)
bgcolor('#F5F6CE')
color('#5E5E5E')
pensize(5)
up()
# 跳到绘制起始点
goto(0, -700)
down()
left(80)
fd(140)
drawTree(120)
input()
树
最新推荐文章于 2021-03-09 11:05:00 发布