本文最后更新于 211 天前,其中的信息可能已经有所发展或是发生改变。
基本原理:
使用了python的`turtle`模块来绘制一棵樱花树和落英飘零的效果。
1. 定义了两个函数:
– `Tree(branch, t)`:用于绘制樱花的躯干部分。根据传入的`branch`参数控制树枝的长度和粗细,并通过随机数设置不同的颜色。递归绘制树枝,并在递归过程中不断调整角度,模拟樱花树枝的形态。
– `Petal(m, t)`:用于绘制落下的花瓣部分。根据传入的`m`参数控制花瓣的数量,随机生成位置和大小不同的花瓣,并设置为淡珊瑚色。
2. 创建了一个`turtle`对象`t`,设置了绘图区域和画布大小,并隐藏了画笔。
3. 调用`Tree(60, t)`函数,绘制樱花的躯干部分。
4. 调用`Petal(200, t)`函数,绘制落下的花瓣部分。
5. 最后设置了一个鼠标点击事件,点击画布后程序退出。
利用`turtle`模块中的图形绘制功能,实现了一个简单的樱花树和花瓣飘落的效果。当代码运行时,会看到绘制出的樱花树和落花效果。
代码展示:
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) # 绘图区域 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()