当前位置:首页>python>用Python画一棵浪漫樱花树,递归+随机效果

用Python画一棵浪漫樱花树,递归+随机效果

  • 2026-10-02 02:22:30
用Python画一棵浪漫樱花树,递归+随机效果

🌸 用Python画一棵会随风飘落的樱花树

春天到了,是不是想在代码里也留住春天的浪漫?今天我们用Python自带的turtle库,仅需30行代码就能画出一棵动态的樱花树,还会随机飘落花瓣哦~

📦 无需额外安装依赖

turtle是Python标准库自带的绘图工具,不需要额外安装,打开编辑器就能写。

💻 完整代码

import turtle
import random

# 递归绘制树枝
def draw_branch(branch_length):
    if branch_length > 3:
        # 随机角度和长度,模拟自然生长
        angle = random.randint(15, 30)
        reduce = random.randint(2, 5)
        # 右侧树枝
        turtle.right(angle)
        turtle.forward(branch_length - reduce)
        draw_branch(branch_length - reduce)
        turtle.backward(branch_length - reduce)
        # 左侧树枝
        turtle.left(angle * 2)
        turtle.forward(branch_length - reduce)
        draw_branch(branch_length - reduce)
        turtle.backward(branch_length - reduce)
        turtle.right(angle)
        # 末端画花瓣
        if branch_length < 12:
            turtle.pencolor(random.choice(['#FFB7C5', '#FFC0CB', '#FF69B4', '#FF1493']))
            turtle.dot(random.randint(4, 8))
        else:
            turtle.pencolor('#8B4513')

# 初始化设置
turtle.speed(0)
turtle.bgcolor('#F0F8FF')
turtle.left(90)
turtle.penup()
turtle.backward(250)
turtle.pendown()
turtle.pensize(2)
turtle.pencolor('#8B4513')

# 绘制樱花树
draw_branch(60)

# 随机飘落花瓣
for _ in range(30):
    x = random.randint(-300, 300)
    y = random.randint(-250, 0)
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()
    turtle.pencolor(random.choice(['#FFB7C5', '#FFC0CB', '#FF69B4', '#FF1493']))
    turtle.dot(random.randint(3, 6))

turtle.hideturtle()
turtle.done()

🔍 代码原理讲解

  1. 递归逻辑:draw_branch函数会不断调用自己,每次绘制更短的分支,直到分支长度小于3就停止,完美模拟树木自然分叉的结构。
  2. 随机效果:每次分叉的角度、缩短的长度、花瓣的颜色和大小都用random随机生成,所以每次运行画出的树都是独一无二的。
  3. 飘落花瓣:绘制完树之后,随机在屏幕下方画30个小点点,模拟花瓣飘落的效果。

🎨 运行效果

运行代码后你会看到:

  • 棕色的树干慢慢生长
  • 枝头开出粉色、深粉色、玫红色的樱花
  • 地上散落着飘落的花瓣 整个画面超级治愈,还可以自己调整颜色、树枝长度、花瓣数量做出不同风格的效果~

✨ 小作业

试试修改以下参数,做出你自己的专属樱花树:

  1. 把背景色改成#FFFFF0(米黄色)更有氛围感
  2. 增加花瓣数量到50,下一场樱花雨
  3. 修改树枝初始长度到80,画一棵更大的树

快动手试试吧!把你画的樱花树分享到评论区呀😉

最新文章

随机文章