当前位置:   article > 正文

Python圣诞树_圣诞树代码python

圣诞树代码python

目录

系列文章 

前言

圣诞树

完整代码

尾声


系列文章 

序号文章目录直达链接
表白系列
1无法拒绝的表白界面https://want595.blog.csdn.net/article/details/134744894
2满屏飘字表白代码https://want595.blog.csdn.net/article/details/135037388
3无限弹窗表白代码https://want595.blog.csdn.net/article/details/134744711
4李峋同款可写字版跳动的爱心https://want595.blog.csdn.net/article/details/134744191
5流星雨https://want595.blog.csdn.net/article/details/134747408
6漂浮爱心https://want595.blog.csdn.net/article/details/134744929
7爱心光波https://want595.blog.csdn.net/article/details/134747365
8玫瑰花https://want595.blog.csdn.net/article/details/134747447
节日系列
1新春/跨年烟花秀(2022)https://want595.blog.csdn.net/article/details/128727394
烟花秀(2023)https://want595.blog.csdn.net/article/details/135042880
粒子烟花https://want595.blog.csdn.net/article/details/136029420
2圣诞节圣诞礼物https://want595.blog.csdn.net/article/details/135336583
圣诞树(2022)https://want595.blog.csdn.net/article/details/128428985
绿色圣诞树(2023)https://want595.blog.csdn.net/article/details/135048607
粉色圣诞树(2023)https://want595.blog.csdn.net/article/details/135043042
3冬至大雪纷飞https://want595.blog.csdn.net/article/details/128806017
4生日生日蛋糕https://want595.blog.csdn.net/article/details/128739755
5儿童节五彩气球https://want595.blog.csdn.net/article/details/128741043
6国庆节国庆祝福https://want595.blog.csdn.net/article/details/128740923
7万圣节万圣礼物https://want595.blog.csdn.net/article/details/128734395
8愚人节愚人代码https://want595.blog.csdn.net/article/details/128696990
9中秋节浪漫星空https://want595.blog.csdn.net/article/details/128737284
10植树节樱花树https://want595.blog.csdn.net/article/details/128700178
动漫系列
1名侦探柯南系列柯南https://want595.blog.csdn.net/article/details/134777613
2喜羊羊与灰太狼系列喜羊羊https://want595.blog.csdn.net/article/details/134778583
懒羊羊https://want595.blog.csdn.net/article/details/134847642
灰太狼https://want595.blog.csdn.net/article/details/135335303
小灰灰https://want595.blog.csdn.net/article/details/135335445
小香香https://want595.blog.csdn.net/article/details/135056783
3海绵宝宝系列海绵宝宝https://want595.blog.csdn.net/article/details/134847364
4哆啦A梦系列哆啦A梦https://want595.blog.csdn.net/article/details/135037884
5HelloKitty系列hellokittyhttps://want595.blog.csdn.net/article/details/135337732
6Tom&Jerry系列Tom&Jerryhttps://want595.blog.csdn.net/article/details/135337775
7草莓熊系列草莓熊https://want595.blog.csdn.net/article/details/135337832
8皮卡丘系列迷你皮卡丘https://want595.blog.csdn.net/article/details/135337911
高级皮卡丘https://want595.blog.csdn.net/article/details/135337937
豪华皮卡丘https://want595.blog.csdn.net/article/details/135337947
炫酷系列
1  一闪一闪亮星星系列张万森下雪了https://want595.blog.csdn.net/article/details/135336915
一闪一闪亮星星https://want595.blog.csdn.net/article/details/135337049
2代码雨https://want595.blog.csdn.net/article/details/135054341
3七彩花朵https://want595.blog.csdn.net/article/details/135056670
43D星空https://want595.blog.csdn.net/article/details/135056516
5金榜题名https://want595.blog.csdn.net/article/details/135056150
6满天星https://want595.blog.csdn.net/article/details/135056305
……

前言

一年一度的圣诞节又要来喽~在这么浪漫的节日里怎么能少的了一个浪漫的程序员呢~让我们一起画个圣诞树,送给你喜欢的那个人吧~

圣诞树

一、实现步骤

用Python的小海龟实现(Turtle)

具体分为五个步骤:

(1)圣诞树

(2)星星

(3)礼物

(4)雪花

(5)祝福

二、编码实现

1. 圣诞树

程序设计

  1. def tree(d,s): #运用递归的方法画圣诞树
  2. t.hideturtle() #隐藏画笔
  3. t.pencolor('limegreen') #画笔颜色置为绿色,用来画树
  4. t.pensize(5) #画笔大小为5
  5. t.speed(0) #最快速度画树(其实挺慢的)
  6. if d<=0:
  7. return
  8. t.forward(s)
  9. tree(d-1,s*0.8)
  10. t.right(120)
  11. tree(d-3,s*0.5)
  12. t.right(120)
  13. tree(d-3,s*0.5)
  14. t.right(120)
  15. t.backward(s)
  16. ……

程序分析 

这段代码是用 Python 的 turtle 模块,画出一个圣诞树的函数。圣诞树由一个树干和很多层树叶构成,树叶要用递归的方式画出来。画树的函数 tree(d,s) 中,d 表示树的深度,s 表示树的长度,如果深度为 0,则返回,否则画出一条长度为 s 的线段。然后分别右转 120 度,调用 tree(d-3, s*0.5) 画出树叶,如此递归下去,直到深度为 0。而函数 trees() 则先画出一个树根,然后调用 tree() 画出树叶,最后画出一个大星星。其中需要用到 turtle 模块中的一些函数,比如 goto()、up()、down()、right() 等等。

2. 星星

程序设计

  1. def star(): #画圣诞树顶的大星星
  2. t.hideturtle() #隐藏画笔
  3. t.pensize(2) #给画笔设置大小
  4. t.pencolor("gold") #给画笔设置颜色,'gold'表示金色
  5. t.up() #提起画笔,画笔移动时不会画画
  6. t.forward(5) #将画笔向前移5个像素(此时画笔方向向右,即向右移动5个像素)
  7. t.down() #画笔放下,画笔移动时会产生轨迹
  8. t.begin_fill() #给星星填充颜色
  9. for i in range(5): #因为是五角星,所以要循环五次画五个角
  10. t.forward(20)
  11. t.right(144)
  12. t.forward(20)
  13. t.left(72)
  14. t.fillcolor('yellow') #设置填充的颜色
  15. t.end_fill()
  16. return
  17. def stars(): #画圣诞树上的小星星
  18. t.hideturtle() #隐藏画笔
  19. t.speed(0) #设置画画速度,0为最快速
  20. t.pensize(5) #设置画笔大小
  21. for i in range(5): #循环五次画五个角,与画大星星一样
  22. t.forward(5)
  23. t.right(144)
  24. t.forward(5)
  25. t.left(72)
  26. return
  27. ……

程序分析 

这段代码用 turtle 模块画出了圣诞树上的星星。其中画大星星的函数 star(),先将画笔向前移动了 5 个像素,然后用 for 循环画出五个角,每次向前移动 20 个像素,右转 144 度(因为五角星每个角是 36 度),向前移动 20 个像素,左转 72 度。最后用 begin_fill()、fillcolor()、end_fill() 函数给星星填充颜色,并返回。画小星星的函数 stars() 与 star() 类似,只是少了填充的步骤。而画圣诞树上所有星星的函数 stares(),则使用了循环,可以画出不同颜色、不同位置的星星。首先设定初始值 x1=-110、x2=110、y1=-40 和 y2=-15,用来控制星星在圣诞树上的位置。然后定义颜色列表 c,用 for 循环画出不同颜色的星星。每画一个星星,n 加一,根据 n 的奇偶性判断是在圣诞树左边还是右边画星星,然后用 randint() 函数随机生成星星的坐标,接着调用 stars() 函数画出星星,最后更新 x1、x2、y1、y2 的值,保证下一个星星的位置在上一个星星的周围。

3. 雪花

程序设计 

  1. def snow(): #画雪花(全屏)
  2. t.hideturtle() #隐藏画笔
  3. t.pensize(2) #画笔大小
  4. t.speed(0) #画雪花的速度
  5. for i in range(500): #循环画500个雪花
  6. t.pencolor('white') #雪花是白色的
  7. t.penup() #提笔
  8. t.setx(r.randint(-1000,1000)) #在画布上随机找点
  9. t.sety(r.randint(-1000,1000))
  10. t.pendown()
  11. snowsize=r.randint(4,10) #雪花大小
  12. for i in range(6): #画雪花(雪花为六瓣,需要循环六次)
  13. t.forward(int(snowsize))
  14. t.backward(int(snowsize))
  15. t.left(60)
'
运行

程序分析 

这段代码用 turtle 模块画出了一个全屏的雪花效果。首先定义 snow() 函数,里面包含了循环 500 次,画出 500 个雪花的过程。其中要注意,每画一个雪花都要先将笔提起,然后随机在画布上找一个点,再将笔放下,开始画雪花。接着定义雪花的大小 snowsize,大小是随机生成的,范围是 4 到 10。然后用 for 循环画出六瓣雪花,每画一瓣,向前移动 snowsize 像素,再向后移动 snowsize 像素,最后左转 60 度。这样循环六次就可以画出一个完整的雪花了。用 pencolor() 函数将雪花的颜色设置为白色,用 randint() 函数随机生成坐标,用 speed() 函数设置画雪花的速度为 0(最快速度),用 pensize() 函数设置画笔的粗细为 2。最后调用这个函数,就可以看到一个全屏都是飘雪花的效果了。

4. 礼物

程序设计

  1. def gift(): #画正方体礼物盒
  2. t.hideturtle() #隐藏画笔
  3. t.speed(0) #画笔速度
  4. x=40 #礼物盒的长和宽,我设置为正方形礼物盒,长宽高相等
  5. y=16 #由于是立体图形,宽与长不一样
  6. for i in range(4): #以下为画礼物盒的方法(x,y的值可以自行修改)
  7. t.forward(x)
  8. t.left(90)
  9. t.up()
  10. t.left(45)
  11. t.forward(y)
  12. t.right(45)
  13. t.down()
  14. for i in range(4):
  15. t.forward(x)
  16. t.left(90)
  17. t.up()
  18. t.right(135)
  19. t.forward(y)
  20. t.down()
  21. t.left(180)
  22. t.forward(y)
  23. t.backward(y)
  24. t.right(45)
  25. t.forward(x)
  26. t.left(45)
  27. t.forward(y)
  28. t.backward(y)
  29. t.left(45)
  30. t.forward(x)
  31. t.right(45)
  32. t.forward(y)
  33. t.backward(y)
  34. t.left(135)
  35. t.forward(x)
  36. t.right(135)
  37. t.forward(y)
  38. t.backward(y)
  39. t.right(135)
  40. t.forward(x)
  41. t.left(90)
  42. ……

程序分析 

这段代码用 turtle 模块画出了一个立体的正方体礼物盒效果。首先定义 gift() 函数,里面包含了画出一个正方体礼物盒的过程。这里我设置礼物盒的长、宽、高相等,长和宽为 x,高为 y。在循环里,先画出四条边,然后左转 45 度,向前移动 y 像素,右转 45 度,再画出四条边,然后左转 135 度,向前移动 y 像素,再右转 180 度,向前移动 y 像素,左转 45 度,向前移动 x 像素,右转 45 度,向前移动 y 像素,向后移动 y 像素,左转 45 度,向前移动 x 像素,右转 45 度,向前移动 y 像素,向后移动 y 像素,左转 135 度,向前移动 x 像素,右转 135 度,向前移动 y 像素,向后移动 y 像素,右转 135 度,向前移动 x 像素,左转 90 度,完成一个正方体礼物盒的绘制。

接着定义 gifts() 函数,用来画出多个正方体礼物盒。在循环里,先用 up() 函数提起笔,向前移动 40 像素,再用 down() 函数将笔放下,画出一个正方体礼物盒,拉出礼物盒的颜色列表 c,循环画出不同颜色的礼物盒。最后的效果就是屏幕上有多个彩色的正方体礼物盒,从而实现了礼物盒的效果。

5. 祝福 

程序设计

  1. def writes(): #写字:“圣诞快乐!”
  2. t.pencolor("cyan") #画笔颜色,天蓝色
  3. t.hideturtle() #隐藏画笔
  4. t.up()
  5. t.goto(-160,-250) #从(-160,-250)开始写字
  6. t.down()
  7. t.write("Merry Christmas!",font=("Comic Sans MS",30,"bold")) #开始写字,"Merry Christmas!"为要写的字,"Comic Sans MS"为字体,30为字的大小,bold为粗体(可自行修改要写的字)
'
运行

程序分析

这段代码用 turtle 模块在屏幕上写出了一段文字 “Merry Christmas!” 的效果。定义 writes() 函数,先用 pencolor() 函数设置画笔颜色为天蓝色,再用 up() 函数提起笔,将画笔移动到屏幕底部中心点的左边 160 像素,向下 250 像素的位置,准备写字。用 down() 函数将笔放下,用 write() 函数开始写字,"Merry Christmas!" 是要写的字,"Comic Sans MS" 是字体,30 是字的大小,bold 是粗体。写完后,画笔隐藏,写字结束。最后在屏幕上就会出现一行 “Merry Christmas!” 的字。

完整代码

https://want595.blog.csdn.net/article/details/128428985

尾声

祝小伙伴们圣诞节快乐吖!

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号