当前位置:   article > 正文

用 Python 画圣诞树的 N 种玩法

pyhonth怎么画圣诞树

23fec50a7389eb75b01142e75502f604.gif

作者 | 写代码的明哥

来源 | Pyhton编程时光

马上就是圣诞节了,先提前祝大家圣诞快乐!

今天来给大家分享一波如何使用 Python 来画一颗圣诞节树,包含多种版本,从平民版到豪华版,像极了一个程度员从入门到高级秃头程序员的过程。

# 圣诞树 - 平民版

第一种比较简单,由最基本的图形(圆形和正方形)组合而成,有点 turtle 基础的人都能画。

9c56ff5c7adc48593b49a67343932af6.png

代码如下

395c01c2dc51cfce8a7cfe9c78e7f7bc.png

# 圣诞树 - 进阶版

上面的圣诞树,都是新手练习使用的,只能自娱自乐,不够真实,也不够高大上。

用线条重新设计,一笔一划来作图,慢工出细活嘛~

ade27d3b3ddb580a1cb2538844135202.png

代码如下:

  1. import turtle
  2. import time
  3. # 定义圣诞树的绿叶函数
  4. def tree(d, s):
  5. if d <= 0:
  6. return
  7. turtle.forward(s)
  8. tree(d - 1, s * .8)
  9. turtle.right(120)
  10. tree(d - 3, s * .5)
  11. turtle.right(120)
  12. tree(d - 3, s * .5)
  13. turtle.right(120)
  14. turtle.backward(s)
  15. n = 100
  16. """ 设置绘图速度
  17. 'fastest' : 0
  18. 'fast' : 10
  19. 'normal' : 6
  20. 'slow' : 3
  21. 'slowest' : 1
  22. """
  23. turtle.speed('fastest') # 设置速度
  24. turtle.left(90)
  25. turtle.forward(3 * n)
  26. turtle.color("orange", "yellow")
  27. turtle.left(126)
  28. # turtle.begin_fill()
  29. for i in range(5):
  30. turtle.forward(n / 5)
  31. turtle.right(144)
  32. turtle.forward(n / 5)
  33. turtle.left(72)
  34. turtle.end_fill()
  35. turtle.right(126)
  36. turtle.color("dark green")
  37. turtle.backward(n * 4.8)
  38. # 执行函数
  39. tree(15, n)
  40. turtle.backward(n / 5)
  41. time.sleep(60)

# 圣诞树 - 豪华版

在进阶版的基础上,再稍作修改:

  • 白天变成黑夜

  • 挂点苹果上去

  • 漫天的雪花与圣诞更配噢

就非常好看啦,我的耳边已经开始响起 Jingle Bell 的旋律了哈哈

befd28b2b64e797be816cd5d04b49d12.png

代码如下:

382302a26cd9623ed301fdb981bfed28.png

# 平安夜 - 平安果

文章发得比较早,毕竟明天才是圣诞节,今晚是平安夜,不来个红苹果说不过去~

cabfaa70d992765cb8c6f82aaaa8ffa0.png

代码如下:

  1. import turtle
  2. import time
  3. turtle.setup(800, 800)
  4. turtle.speed(5)
  5. turtle.pensize(5)
  6. # 先画一个圆,并填充为红色
  7. turtle.begin_fill()
  8. turtle.color("red")
  9. turtle.circle(radius=150)
  10. turtle.end_fill()
  11. # 画苹果把儿
  12. turtle.color("brown")
  13. turtle.pu()
  14. turtle.goto(-90, 200)
  15. turtle.pd()
  16. turtle.circle(180, 40)
  17. turtle.pu()
  18. turtle.seth(105)
  19. turtle.goto(-20, 220)
  20. turtle.pd()
  21. turtle.circle(180, 50)
  22. turtle.pd()
  23. # 画左边叶子
  24. turtle.begin_fill()
  25. turtle.color("green")
  26. turtle.circle(180, 50)
  27. turtle.seth(-30)
  28. turtle.circle(180, 55)
  29. turtle.end_fill()
  30. # 画右边叶子
  31. turtle.begin_fill()
  32. turtle.color("green")
  33. turtle.seth(0)
  34. turtle.circle(180, 50)
  35. turtle.seth(-180)
  36. turtle.circle(180, 50)
  37. turtle.end_fill()
  38. turtle.done()
  39. time.sleep(10)

6a51e5d9d260c4050b9571313f095cfc.gif

25a67f91c9cc0405f4ecc36b1384006c.png

资讯

活体人脑细胞5分钟学会打游戏

资讯

谷歌发布RLDS,在强化学习生成

资讯

AI语言模型是否越大越好?

技术

从深度学习到深度森林方法

66f525edf56f0778640d169356e6dedb.png

分享

072af1d60fd31fbe9fd4c3f09e52d9dd.png

点收藏

f63ee7566d7b28082d2f76c42a1acdaf.png

点点赞

503dda144648d8e42bb3e36153039bf9.png

点在看

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/325920
推荐阅读
相关标签
  

闽ICP备14008679号