前言:
1.在开始前需要引入turtle库,若没有下载这个库可以复制下面这条语句在PyCharm终端下载
pip install turtle
2.turtle库,它这个画笔是在这个窗口横轴x轴,纵轴y轴从原点(0,0)处开始,以函数指令使其移动绘图。
正文:
一:开始前引入所需的库
# turtle as t 是将turtle替换为timportturtleast# 随机库importrandom# 引入turtle库中的所有用法fromturtleimport*
二:设置窗口属性和RGB颜色属性以及绘图数度
# 设置窗口大小和背景颜色t.screensize(800,700,'black') # RGB默认范围是0~1,通过Screen().colormode设置成0~255Screen().colormode(255) # 加快作图数度t.speed(speed='fastest')
三:画圣诞树
# 画树t.left(90) t.forward(-300) t.pensize(5) # 设置画笔颜色t.color('green') # 开始画树deftree(d, s): ifd<=0: returnforward(s) tree(d-1, s*.8) right(120) tree(d-3, s*.5) right(120) tree(d-3, s*.5) right(120) backward(s) # 调用画树函数tree(15,100) backward(50)
四:画五角星
# 画五角星defxin(): t.right(90) # 设置画笔尺寸t.pensize(3) # t.circle(40)# 抬笔t.penup() # 将画笔移动到该位置t.goto(-25,190) # 落笔pendown() # 开始填充t.begin_fill() # 设置画笔颜色t.color('yellow') # 画五角星,一共需要五笔foriinrange(5): t.forward(55) t.right(144) # 结束填充t.end_fill() # 调用画五角星函数xin()
五:画天上的星星
# 满天繁星# 用for循环画17颗星星foriinrange(17): # 设置随机坐标x=random.randint(-400,400) y=random.randint(240,330) # 设置星星随机大小a=random.randint(5,12) # 抬笔t.penup() # 将画笔移动到随机位置t.goto(x,y) # 落笔t.pendown() t.pensize(5) t.color('yellow') t.begin_fill() foriinrange(4): t.forward(a) t.left(30) t.forward(a) t.right(120) # 每画完一颗星星将画笔方向向左改变30度,使星星看起来更加生动t.left(30) t.end_fill()
六:画彩色气球
#彩色气球# 利用循环画20个气球foriinrange(20): # 设置随机位置X=random.randint(-400,400) Y=random.randint(-170,150) # 抬笔t.penup() # 将画笔位置移动到初始位置t.home() # 将画笔移动到随机位置t.goto(X, Y) # 设置RGB颜色范围red=random.randint(100,255) green=random.randint(50,155) blue=random.randint(100,255) # 画笔尺寸t.pensize(2) # 落笔t.pendown() # 设置气球线颜色t.color('white') t.left(90) t.circle(80,15) t.circle(-80,15) t.right(90) t.pensize(5) # 利用RGB颜色设置气球颜色t.color(red,green,blue) t.begin_fill() t.circle(15) t.end_fill()
七:画彩灯
# 彩灯deflight(): # 隐藏笔头,ht=hideturtlet.hideturtle() # 利用for循环画100个彩灯foriinrange(100): t.penup() # 设置彩灯随机位置x=random.randint(-300,300) y=random.randint(-350,-300) # 设置RGB颜色red=random.randint(100,255) green=random.randint(50,155) blue=random.randint(100,255) # 将画笔移动到随机位置t.goto(x,y) t.pendown() t.pensize(5) t.color(red,green,blue) t.begin_fill() t.circle(10) t.end_fill() # 调用彩灯函数light()
八:画满天飞雪
# 雪花defdrawsnow(): # 隐藏笔头,ht=hideturtlet.hideturtle() t.pensize(2) foriinrange(200): t.pencolor("white") t.penup() # 设置雪花随机位置坐标x=random.randint(-400,400) y=random.randint(-250,300) # 将画笔移动到随机位置t.goto(x,y) t.pendown() # 雪花花瓣数petal=6# 设置雪花随机大小snowsize=random.randint(1, 10) # print(type(snowsize))forjinrange(petal): t.forward(snowsize) t.backward(snowsize) # 转动角度t.right(int(360/petal)) # 调用雪花函数drawsnow()
九:画祝福话语
# 添加文字t.penup() t.goto(-300,-250) t.color('red') t.pendown() t.write('祝 刘晓云 Merry Christmas!',font=('Mistral',42,'bold italic'))
十:防止绘图完成后窗口秒关
# 防止绘图完成后窗口秒关t.done()
最后完整代码双手奉上!
importturtleast# 随机库importrandom# 引入turtle库中的所有用法fromturtleimport*# 跳过绘图过程t.tracer(False) # 设置窗口大小和背景颜色t.screensize(800,700,'black') # RGB默认范围是0~1,通过Screen().colormode设置成0~255Screen().colormode(255) # 加快作图数度t.speed(speed='fastest') # 画树t.left(90) t.forward(-300) t.pensize(5) # 设置画笔颜色t.color('green') # 开始画树deftree(d, s): ifd<=0: returnforward(s) tree(d-1, s*.8) right(120) tree(d-3, s*.5) right(120) tree(d-3, s*.5) right(120) backward(s) # 调用画树函数tree(15,100) backward(50) # 画五角星defxin(): t.right(90) # 设置画笔尺寸t.pensize(3) # t.circle(40)# 抬笔t.penup() # 将画笔移动到该位置t.goto(-25,190) # 落笔pendown() # 开始填充t.begin_fill() # 设置画笔颜色t.color('yellow') # 画五角星,一共需要五笔foriinrange(5): t.forward(55) t.right(144) # 结束填充t.end_fill() # 调用画五角星函数xin() # 满天繁星# 用for循环画17颗星星foriinrange(17): # 设置随机坐标x=random.randint(-400,400) y=random.randint(240,330) # 设置星星随机大小a=random.randint(5,12) # 抬笔t.penup() # 将画笔移动到随机位置t.goto(x,y) # 落笔t.pendown() t.pensize(5) t.color('yellow') t.begin_fill() foriinrange(4): t.forward(a) t.left(30) t.forward(a) t.right(120) # 每画完一颗星星将画笔方向向左改变30度,使星星看起来更加生动t.left(30) t.end_fill() #彩色气球# 利用循环画20个气球foriinrange(20): # 设置随机位置X=random.randint(-400,400) Y=random.randint(-170,150) # 抬笔t.penup() # 将画笔位置移动到初始位置t.home() # 将画笔移动到随机位置t.goto(X, Y) # 设置RGB颜色范围red=random.randint(100,255) green=random.randint(50,155) blue=random.randint(100,255) # 画笔尺寸t.pensize(2) # 落笔t.pendown() # 设置气球线颜色t.color('white') t.left(90) t.circle(80,15) t.circle(-80,15) t.right(90) t.pensize(5) # 利用RGB颜色设置气球颜色t.color(red,green,blue) t.begin_fill() t.circle(15) t.end_fill() # 彩灯deflight(): # 隐藏笔头,ht=hideturtlet.hideturtle() # 利用for循环画100个彩灯foriinrange(100): t.penup() # 设置彩灯随机位置x=random.randint(-300,300) y=random.randint(-350,-300) # 设置RGB颜色red=random.randint(100,255) green=random.randint(50,155) blue=random.randint(100,255) # 将画笔移动到随机位置t.goto(x,y) t.pendown() t.pensize(5) t.color(red,green,blue) t.begin_fill() t.circle(10) t.end_fill() # 调用彩灯函数light() # 雪花defdrawsnow(): # 隐藏笔头,ht=hideturtlet.hideturtle() t.pensize(2) foriinrange(200): t.pencolor("white") t.penup() # 设置雪花随机位置坐标x=random.randint(-400,400) y=random.randint(-250,300) # 将画笔移动到随机位置t.goto(x,y) t.pendown() # 雪花花瓣数petal=6# 设置雪花随机大小snowsize=random.randint(1, 10) # print(type(snowsize))forjinrange(petal): t.forward(snowsize) t.backward(snowsize) # 转动角度t.right(int(360/petal)) # 调用雪花函数drawsnow() # 添加文字t.penup() t.goto(-300,-250) t.color('red') t.pendown() t.write('祝 刘晓云 Merry Christmas!',font=('Mistral',42,'bold italic')) # 防止绘图完成后窗口秒关t.done()