用Python绘制动态樱花树30行代码打造绝美视觉效果(附完整源码)
🌸 效果抢先看!(直接运行就能玩)
先上动图感受一下!代码运行后会看到一个逐渐生长的樱花树:
- 树干由粗到细自然延伸
- 粉色花瓣随机飘落(自带重力加速度效果!)
- 每次运行都会生成独一无二的树形
- ESC键可随时退出程序
🛠️ 环境准备(5秒搞定)
只要安装Python标准库就行!打开cmd输入:
bash
pip install turtle
(已经安装过的同学直接跳过这步)
🔥 完整代码(复制即用)
```python
import turtle as t
import random
初始化设置(窗口/画笔)
t.setup(1000, 800)
t.speed(0)
t.bgcolor("black")
t.title("动态樱花树 by 技术博客")
colors = ["#FFB3DE", "#FF82D1", "#FF69B4"] # 花瓣颜色库
核心绘制函数
def draw_tree(branch_len, pen_size):
if branch_len > 5:
# 动态调整画笔粗细
t.pensize(pen_size)
花瓣绘制(带飘落动画)
def draw_petal():
t.penup()
start_pos = t.pos()
t.color(random.choice(colors))
主程序启动
t.left(90)
t.penup()
t.backward(200)
t.pendown()
t.color("saddlebrown")
draw_tree(100, 12)
t.done()
```
🎨 自定义修改指南(打造专属樱花)
1. 调整画布尺寸
修改t.setup(1000, 800)中的数值:
- 第一个参数是宽度
- 第二个参数是高度
(建议保持16:9比例更美观)
2. 更换花瓣颜色
修改colors列表中的HEX色值:
```python
colors = ["#FFB3DE", "#FF82D1", "#FF69B4"] # 当前是粉色调
改成蓝白色系示例:
colors = ["#B0E2FF", "#87CEFA", "#00BFFF"]
```
3. 控制树枝密度
修改draw_tree函数的递归参数:
- branch_len * random.uniform(0.7, 0.9) 数值越大分支越密集
- 把0.7改成0.5会生成更茂密的树冠
💡 技术原理揭秘
1. 递归算法(树形生成的核心)
通过不断调用自身函数,每次生成更细的分支。配合随机数实现自然分叉效果。
2. Turtle动画技巧
- t.update() 实现逐帧刷新
- t.speed(0) 关闭动画中间步骤
- t.tracer(0,0) 双倍速绘制(可在代码开头添加)
3. 物理模拟
花瓣飘落的抛物线轨迹通过:
- X轴随机偏移(random.randint(-2, 2))
- Y轴逐渐加速(offset_y负值递增)
模拟真实重力效果
🚨 常见问题解决
Q1:运行后窗口闪退怎么办?
在代码最后添加:
python
t.mainloop() # 替代t.done()
Q2:提示"No module named 'turtle'"
说明没有正确安装库,重新运行:
bash
python -m pip install --upgrade turtle
Q3:想保存成GIF动图
在t.done()之前添加:
```python
ts = t.getscreen()
ts.getcanvas().postscript(file="sakura.eps") # 保存矢量图
用PS等软件转换为GIF即可
```
🌟 优化建议(进阶玩法)
- 添加背景星空:在bgcolor("black")后绘制随机白点
- 实现昼夜切换:用t.bgcolor()渐变修改背景色
- 增加交互功能:鼠标点击生成新树形
快去动手试试吧!把你的创意樱花树截图发到评论区~ (记得关闭杀毒软件,某些安全软件会误报turtle库)
浙公网安备 33010602011771号