怎么用python画圣诞树?(python画圣诞树三种代码示例介绍)
大家好,本篇文章主要讲的是用python画圣诞树三种代码示例介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
目录
前言
1.方块圣诞树
2.线条圣诞树
3.豪华圣诞树
总结
前言
这篇文章主要介绍了使用Python画了一棵圣诞树的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
如何用python画一个圣诞树呢?
Turtle库来画圣诞树。
1.方块圣诞树
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import turtle screen = turtle.Screen() screen.setup( 375 , 700 ) circle = turtle.Turtle() circle.shape( 'circle' ) circle.color( 'red' ) circle.speed( 'fastest' ) circle.up() square = turtle.Turtle() square.shape( 'square' ) square.color( 'green' ) square.speed( 'fastest' ) square.up() circle.goto( 0 , 280 ) circle.stamp() k = 0 for i in range ( 1 , 13 ): y = 30 * i for j in range (i - k): x = 30 * j square.goto(x, - y + 280 ) square.stamp() square.goto( - x, - y + 280 ) square.stamp() if i % 4 = = 0 : x = 30 * (j + 1 ) circle.color( 'red' ) circle.goto( - x, - y + 280 ) circle.stamp() circle.goto(x, - y + 280 ) circle.stamp() k + = 3 if i % 4 = = 3 : x = 30 * (j + 1 ) circle.color( 'yellow' ) circle.goto( - x, - y + 280 ) circle.stamp() circle.goto(x, - y + 280 ) circle.stamp() square.color( 'brown' ) for i in range ( 13 , 17 ): y = 30 * i for j in range ( 2 ): x = 30 * j square.goto(x, - y + 280 ) square.stamp() square.goto( - x, - y + 280 ) square.stamp() |
2.线条圣诞树
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import turtle # 定义圣诞树的绿叶函数 def tree(d, s): if d < = 0 : return turtle.forward(s) tree(d - 1 , s * . 8 ) turtle.right( 120 ) tree(d - 3 , s * . 5 ) turtle.right( 120 ) tree(d - 3 , s * . 5 ) turtle.right( 120 ) turtle.backward(s) n = 100 """ 设置绘图速度 'fastest' : 0 'fast' : 10 'normal' : 6 'slow' : 3 'slowest' : 1 """ turtle.speed( 'fastest' ) # 设置速度 turtle.left( 90 ) turtle.forward( 3 * n) turtle.color( "orange" , "yellow" ) turtle.left( 126 ) # turtle.begin_fill() 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 ) |
3.豪华圣诞树
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | import turtle as t #as就是取个别名,后续调用的t都是turtle from turtle import * import random as r import time n = 100.0 speed( "fastest" ) #定义速度 screensize(bg = 'black' ) #定义背景颜色,可以自己换颜色 left( 90 ) forward( 3 * n) color( "orange" , "yellow" ) #定义最上端星星的颜色,外圈是orange,内部是yellow begin_fill() left( 126 ) for i in range ( 5 ): #画五角星 forward(n / 5 ) right( 144 ) #五角星的角度 forward(n / 5 ) left( 72 ) #继续换角度 end_fill() right( 126 ) def drawlight(): #定义画彩灯的方法 if r.randint( 0 , 30 ) = = 0 : #如果觉得彩灯太多,可以把取值范围加大一些,对应的灯就会少一些 color( 'tomato' ) #定义第一种颜色 circle( 6 ) #定义彩灯大小 elif r.randint( 0 , 30 ) = = 1 : color( 'orange' ) #定义第二种颜色 circle( 3 ) #定义彩灯大小 else : color( 'dark green' ) #其余的随机数情况下画空的树枝 color( "dark green" ) #定义树枝的颜色 backward(n * 4.8 ) def tree(d, s): #开始画树 if d < = 0 : return forward(s) tree(d - 1 , s * . 8 ) right( 120 ) tree(d - 3 , s * . 5 ) drawlight() #同时调用小彩灯的方法 right( 120 ) tree(d - 3 , s * . 5 ) right( 120 ) backward(s) tree( 15 , n) backward(n / 2 ) for i in range ( 200 ): #循环画最底端的小装饰 a = 200 - 400 * r.random() b = 10 - 20 * r.random() up() forward(b) left( 90 ) forward(a) down() if r.randint( 0 , 1 ) = = 0 : color( 'tomato' ) else : color( 'wheat' ) circle( 2 ) up() backward(a) right( 90 ) backward(b) t.color( "dark red" , "red" ) #定义字体颜色 t.write( "Merry Christmas" ,align = "center" ,font = ( "Comic Sans MS" , 40 , "bold" )) #定义文字、位置、字体、大小 def drawsnow(): #定义画雪花的方法 t.ht() #隐藏笔头,ht=hideturtle t.pensize( 2 ) #定义笔头大小 for i in range ( 200 ): #画多少雪花 t.pencolor( "white" ) #定义画笔颜色为白色,其实就是雪花为白色 t.pu() #提笔,pu=penup t.setx(r.randint( - 350 , 350 )) #定义x坐标,随机从-350到350之间选择 t.sety(r.randint( - 100 , 350 )) #定义y坐标,注意雪花一般在地上不会落下,所以不会从太小的纵座轴开始 t.pd() #落笔,pd=pendown dens = 6 #雪花瓣数设为6 snowsize = r.randint( 1 , 10 ) #定义雪花大小 for j in range (dens): #就是6,那就是画5次,也就是一个雪花五角星 #t.forward(int(snowsize)) #int()取整数 t.fd( int (snowsize)) t.backward( int (snowsize)) #t.bd(int(snowsize)) #注意没有bd=backward,但有fd=forward,小bug t.right( int ( 360 / dens)) #转动角度 drawsnow() #调用画雪花的方法 t.done() # 完成,否则会直接关闭 |
总结
到此这篇关于用python画圣诞树三种代码示例介绍的文章就介绍到这了
原文链接:https://blog.csdn.net/weixin_52908342/article/details/121956089