python实现绘制一个简单的圣诞树

import turtle

def draw_triangle(length):
    for _ in range(3):
        turtle.forward(length)
        turtle.left(120)

def draw_tree(levels, length):
    for _ in range(levels):
        draw_triangle(length)
        turtle.forward(length)
        turtle.left(120)

def draw_star(size):
    for _ in range(5):
        turtle.forward(size)
        turtle.right(144)

def draw_christmas_tree(levels, length, star_size):
    turtle.speed(2)
    
    # Draw the tree
    turtle.penup()
    turtle.goto(-length / 2, -length / 2)
    turtle.pendown()
    draw_tree(levels, length)

    # Draw the trunk
    turtle.right(60)
    turtle.forward(length / 2)
    turtle.right(120)
    turtle.forward(length / 2)
    turtle.right(60)
    
    # Draw the star
    turtle.penup()
    turtle.goto(-star_size / 2, length / 2 + star_size / 2)
    turtle.pendown()
    turtle.fillcolor('yellow')
    turtle.begin_fill()
    draw_star(star_size)
    turtle.end_fill()

    turtle.hideturtle()
    turtle.done()

# 调用函数绘制圣诞树
draw_christmas_tree(levels=4, length=100, star_size=20)


这个代码使用turtle库,首先定义了两个函数 draw_triangledraw_tree 来画等边三角形和树枝,然后通过 draw_christmas_tree 函数来整体绘制圣诞树,包括树和星。你可以根据需要调整树的层数、长度和星星的大小。运行这个脚本,一个简单的圣诞树就会在窗口中绘制出来。

详解:

  1. import turtle:导入turtle库,turtle库是Python标准库中的一个用于图形绘制的库。

  2. def draw_triangle(length)::定义一个名为draw_triangle的函数,用于绘制等边三角形。该函数接受一个参数length,表示三角形的边长。

  3. for _ in range(3)::使用for循环,循环三次,表示绘制一个等边三角形,turtle向前移动length距离,然后左转120度,重复三次。

  4. def draw_tree(levels, length)::定义一个名为draw_tree的函数,用于绘制圣诞树的每一层。该函数接受两个参数,levels表示树的层数,length表示每层的长度。

  5. for _ in range(levels)::使用for循环,循环levels次,表示绘制整个圣诞树。在每一层中,调用draw_triangle函数绘制一个三角形,然后turtle向前移动length距离,左转120度,重复。

  6. def draw_star(size)::定义一个名为draw_star的函数,用于绘制五角星。该函数接受一个参数size,表示五角星的大小。

  7. for _ in range(5)::使用for循环,循环五次,表示绘制一个五角星。turtle向前移动size距离,然后右转144度,重复五次。

  8. def draw_christmas_tree(levels, length, star_size)::定义一个名为draw_christmas_tree的函数,用于绘制整个圣诞树和星星。该函数接受三个参数,levels表示树的层数,length表示每层的长度,star_size表示星星的大小。

  9. turtle.speed(2):设置turtle的绘制速度为2,可以调整该值以加快或减慢绘制速度。

  10. turtle.penup():抬起画笔,使turtle在移动时不绘制轨迹。

  11. turtle.goto(-length / 2, -length / 2):将turtle移动到起始位置,即圣诞树左下角的位置。

  12. turtle.pendown():放下画笔,开始绘制。

  13. draw_tree(levels, length):调用draw_tree函数绘制圣诞树。

  14. turtle.right(60):右转60度,准备绘制树干。

  15. turtle.forward(length / 2):向前移动长度的一半,绘制树干的上部分。

  16. turtle.right(120):右转120度,绘制树干的下部分。

  17. turtle.forward(length / 2):向前移动长度的一半,完成树干的绘制。

  18. turtle.right(60):右转60度,调整turtle的朝向。

  19. turtle.penup():抬起画笔,准备绘制星星。

  20. turtle.goto(-star_size / 2, length / 2 + star_size / 2):将turtle移动到星星的起始位置。

  21. turtle.pendown():放下画笔,准备绘制星星。

  22. turtle.fillcolor('yellow'):设置填充颜色为黄色。

  23. turtle.begin_fill():开始填充。

  24. draw_star(star_size):调用draw_star函数绘制星星。

  25. turtle.end_fill():结束填充。

  26. turtle.hideturtle():隐藏turtle图形。

  27. turtle.done():绘图完成。

  28. draw_christmas_tree(levels=6, length=150, star_size=40):调用draw_christmas_tree函数,绘制一个有6层的圣诞树,每层长度为150,星星大小为40。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值