python樱花代码
以下是一个python画樱花树的代码:
import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, t): time.sleep(0.0005) if branch > 3: if 8 <= branch <= 12: if random.randint(0, 2) == 0: t.color('snow') # 白 else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branch / 3) elif branch < 8: if random.randint(0, 1) == 0: t.color('snow') else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branch / 2) else: t.color('sienna') # 赭(zhě)色 t.pensize(branch / 10) # 6 t.forward(branch) a = 1.5 * random.random() t.right(20 * a) b = 1.5 * random.random() Tree(branch - 10 * b, t) t.left(40 * a) Tree(branch - 10 * b, t) t.right(20 * a) t.up() t.backward(branch) t.down() # 掉落的花瓣 def Petal(m, t): for i in range(m): a = 200 - 400 * random.random() b = 10 - 20 * random.random() t.up() t.forward(b) t.left(90) t.forward(a) t.down() t.color('lightcoral') # 淡珊瑚色 t.circle(1) t.up() t.backward(a) t.right(90) t.backward(b) # 绘图区域 if __name__ == '__main__': t = T.Turtle() # 画布大小 w = T.Screen() t.hideturtle() # 隐藏画笔 t.getscreen().tracer(5, 0) w.screensize(bg='wheat') # wheat小麦 t.left(90) t.up() t.backward(150) t.down() t.color('sienna') # 画樱花的躯干 Tree(60, t) # 掉落的花瓣 Petal(200, t) w.exitonclick()
这段代码(来源:大炳哥)使用Python的Turtle模块绘制了一个樱花树和飘落的花瓣效果。下面是对代码的解释:
- 导入模块和库:
import turtle as T import random import time ``` ``turtle`模块提供了绘制图形的功能,`random`模块用于生成随机数,`time`模块用于添加延迟。
- 定义函数
Tree(branch, t)
:
这个函数用于绘制樱花树的躯干部分。它接受两个参数,branch
表示树枝的长度,t
是Turtle对象,用于绘制图形。- 函数中的
time.sleep(0.0005)
是为了添加绘图的延迟效果,使得树的生长看起来更自然。 - 根据树枝的长度,选择合适的颜色和笔触大小来绘制树枝。
- 使用随机数控制树枝的生长方向和长度,使得树看起来更加自然。
- 递归调用
Tree()
函数来绘制树枝的分支。 - 最后,将画笔移动到原位置,为绘制花瓣做准备。
- 函数中的
- 定义函数
Petal(m, t)
:
这个函数用于绘制飘落的花瓣。它接受两个参数,m
表示花瓣的数量,t
是Turtle对象,用于绘制图形。- 使用随机数控制花瓣的位置和大小,使得花瓣的分布看起来更加随机。
- 绘制圆形的花瓣。
- 主程序:
- 创建一个Turtle对象
t
和一个Screen对象w
,用于绘制图形和设置画布。 - 隐藏画笔,并设置绘图速度。
- 设置画布的背景颜色。
- 调整画笔的位置和方向。
- 使用
Tree()
函数绘制樱花树的躯干。 - 使用
Petal()
函数绘制飘落的花瓣。 - 等待用户点击画布关闭程序。
- 创建一个Turtle对象
最终效果图:
这段代码运行后,将在画布上绘制出一棵樱花树和飘落的花瓣效果。