linuxgeek

用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即可

```

🌟 优化建议(进阶玩法)

  1. 添加背景星空:在bgcolor("black")后绘制随机白点
  2. 实现昼夜切换:用t.bgcolor()渐变修改背景色
  3. 增加交互功能:鼠标点击生成新树形

快去动手试试吧!把你的创意樱花树截图发到评论区~ (记得关闭杀毒软件,某些安全软件会误报turtle库)

posted on 2025-05-19 23:07  linuxgeek  阅读(80)  评论(0)    收藏  举报

导航