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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| import turtle as t from turtle import * from random import randint,random
def drawStars(): n = 100.0 for i in range(5): # 画五角星 forward(n / 5) right(144) # 五角星的角度 forward(n / 5) left(72) # 继续换角度 end_fill() right(126)
def drawlight(): # 定义画彩灯的方法 if randint(0, 30) == 0: # 如果觉得彩灯太多,可以把取值范围加大一些,对应的灯就会少一些 color('tomato') # 定义第一种颜色 circle(6) # 定义彩灯大小 elif randint(0, 30) == 1: color('orange') # 定义第二种颜色 circle(3) # 定义彩灯大小 else: color('dark green') # 其余的随机数情况下画空的树枝
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)
def drawButtom(): for i in range(200): # 循环画最底端的小装饰 a = 200 - 400 * random() b = 10 - 20 * random() up() forward(b) left(90) forward(a) down() if randint(0, 1) == 0: color('tomato') else: color('wheat') circle(2) up() backward(a) right(90) backward(b)
def writeWords(s_name,s_words,s_author): t.color("dark red", "red") # 定义字体颜色 t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold")) # 定义文字、位置、字体、大小 t.goto(-450,-290) t.write("Hi,"+s_name, align="left", font=("Comic Sans MS", 20, "bold"))
t.goto(400,-330) t.write(s_words,align="right", font=("Comic Sans MS", 20, "bold"))
t.goto(400,-370) t.write(s_author, align="right", font=("Comic Sans MS", 20, "bold"))
t.goto(400,-400) t.write("Dec,2021", align="right", font=("Comic Sans MS", 20, "bold"))
def drawsnow(): # 定义画雪花的方法 t.ht() # 隐藏笔头,ht=hideturtle t.pensize(2) # 定义笔头大小 for i in range(200): # 画多少雪花 t.pencolor("white") # 定义画笔颜色为白色,其实就是雪花为白色 t.pu() # 提笔,pu=penup t.setx(randint(-350, 350)) # 定义x坐标,随机从-350到350之间选择 t.sety(randint(-100, 350)) # 定义y坐标,注意雪花一般在地上不会落下,所以不会从太小的纵座轴开始 t.pd() # 落笔,pd=pendown dens = 6 # 雪花瓣数设为6 snowsize = 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() # 完成,否则会直接关闭
if __name__=="__main__": #定义各种参数 n = 100.0 delay(0) t.speed("fastest") # 定义速度 screensize(bg='black') # 定义背景颜色,可以自己换颜色 left(90) forward(3 * n) color("orange", "yellow") # 定义最上端星星的颜色,外圈是orange,内部是yellow begin_fill() left(126)
# 开润 drawStars()
color("dark green") # 定义树枝的颜色 backward(n * 4.8)
tree(15, n) backward(n / 2)
drawButtom()
# 雪花慢慢飘 delay(10) s_name="FRIENDS" s_words = "ᵀᵘʳⁿ ʸᵒᵘʳ ˢᵒᶜᵏˢ ᵒᵛᵉʳ, ⁱⁿˢⁱᵈᵉ ᵒᵘᵗ, ʰᵃⁿᵍ ᵗʰᵉᵐ ᵘᵖ, ᵃⁿᵈ ᵗʰᵉ ʷʰᵒˡᵉ ʷᵒʳˡᵈ ⁱˢ ʸᵒᵘʳ ᵍⁱᶠᵗ." s_author="CutePepper" writeWords(s_name, s_words, s_author)
drawsnow() # 调用画雪花的方法 t.done() # 完成,否则会直接关闭
|