python实现樱花
代码如下:
from turtle import *from random import *from math import *def tree(n, l):pd ()# 下笔# 阴影效果t = cos ( radians ( heading () + 45 ) ) / 8 + 0.25pencolor ( 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.5ran = random ()# 这里相比于原来随机添加了填充的圆圈,让樱花叶子看起来更多一点if (ran > 0.7):begin_fill ()circle ( 3 )fillcolor ( 'pink' )# 把原来随机生成的叶子换成了统一的粉色pencolor ( "pink" )circle ( 3 )if (ran > 0.7):end_fill ()left ( 90 )# 添加0.3倍的飘落叶子if (random () > 0.7):pu ()# 飘落t = heading ()an = -40 + random () * 40setheading ( 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.5pencolor ( 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.956, 0.9255, 0.9882 )# 设置背景色(把灰色换成淡紫色)ht ()# 隐藏turtlespeed ( 0 )# 速度 1-10渐进,0 最快tracer ( 0, 0 )pu ()# 抬笔backward ( 50 )left ( 90 )# 左转90度pu ()# 抬笔backward ( 300 )# 后退300tree ( 12, 100 )# 递归7层done ()
效果如下: