【节日专栏】Python海龟绘制圣诞树代码

本文介绍了如何使用Python的Turtle库通过递归函数tree()来绘制一棵有层次的圣诞树,详细解释了参数含义和绘制过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

圣诞节就要到了,有没有要送给朋友礼物的程序员呢?

import turtle

def tree(d, s):
    if d <= 0:
        return
    turtle.forward(s)
    tree(d - 1, s * 0.8)
    turtle.right(120)
    tree(d - 3, s * 0.5)
    turtle.right(120)
    tree(d - 3, s * 0.5)
    turtle.right(120)
    turtle.backward(s)

n = 100 # 🎄调整树大小的区域🎄
turtle.speed('fastest')

turtle.left(90)
turtle.forward(3 * n)
turtle.color("orange", "yellow")
turtle.left(126)

for i in range(5):
    turtle.forward(n / 5)
    turtle.right(144)
    turtle.forward(n / 5)
    turtle.left(72)
    turtle.end_fill()
turtle.right(126)
turtle.color("dark green")
turtle.backward(n * 4.8)

tree(15, n)
turtle.backward(n / 5)

这里重点来讲解一下,函数 tree() 的工作原理。

  1. tree() 函数使用递归的方式来绘制一棵树。
  2. 传入的参数参数 d 表示树的深度, s 表示树干长度。
  3. 首先向前绘制树干,然后递归调用自身来绘制更小的分支,每次将树干长度缩小为原来的 0.80.80.8 倍。
  4. 接着,通过右转 120120120 度来绘制向右的分支,递归调用自身来绘制更小的分支,每次将树干长度缩小为原来的 0.50.50.5 倍。
  5. 再次右转 120120120 度,重复绘制向左的分支,最后回到原来的位置,向后绘制回到起始位置。
  6. tree() 函数通过递归不断调用自身,最终绘制出整棵树的结构。
  7. 运行效果如下。
    🎄递归法运行效果🎄
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值