用代码来绘制圣诞树

import turtle

def draw_pretty_christmas_tree(t, size, levels, shortening_factor, angle):
    t.pencolor("green")
    if levels == 0:
        t.pencolor("red")
        t.dot(size // 5)
        t.pencolor("green")
        return
    if levels == 1:
        t.forward(size)
        t.backward(size)
        return
    length = size / shortening_factor
    t.forward(length)
    t.right(angle)
    draw_pretty_christmas_tree(t, size * 0.8, levels-1, shortening_factor, angle)
    t.left(angle * 2)
    draw_pretty_christmas_tree(t, size * 0.8, levels-1, shortening_factor, angle)
    t.right(angle)
    t.backward(length)

def setup_turtle():
    window = turtle.Screen()
    window.bgcolor("white")
    tree = turtle.Turtle()
    tree.speed('fastest') # 设置最快的绘制速度
    tree.left(90) # 朝上绘制
    tree.penup()
    tree.goto(0, -250) # 将起始点移到屏幕下方
    tree.pendown()
    return tree

def main():
    my_turtle = setup_turtle()
    draw_pretty_christmas_tree(my_turtle, 100, 6, 1.5, 25)
    turtle.done()

if __name__ == "__main__":
    main()

递归函数 draw_pretty_christmas_tree 来绘制圣诞树,

通过不断调用自身来创建分支,创建一个更自然的树木形状。

levels 参数决定树的高度(即递归深度);

 shortening_factor 控制着树枝长度的减少程度。angle 是树枝与主干之间的角度。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何遇mirror

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值