时间:2022-09-12 10:14:42 | 栏目:Python代码 | 点击:次
春节快到了,一年一度的支付宝集五福活动就要来了,阿牛也是突发奇想,看能不能用python的turtle库画个"福"字,试了很久,我的这个“福“”字终于看起来可以了,现将源码分享给大家,拿过去放到python的环境中就可以直接运行哦!嘿嘿嘿!这五福手到擒来啦!
海龟绘图是 Python 内置的一个比较有趣的模块,模块名称为 turtle,并且依赖python内置的tkinter模块。它最初源于 20世纪60年代 的 Logo 语言,之后成为了 Python 的内置模块。海龟绘图提供了一些简单的绘图方法,可以根据编写的控制指令(代码),让一个 “海龟” 在屏幕上来回移动,而且可以在它爬行的路径上绘制图形。通过海龟绘图,不仅可以在屏幕上绘制图形,还可以看到整个绘制过程。另外,海龟绘图对初学者十分友好,它能够轻松地编写出很多有趣的实例。
海龟绘图的三要素:
采用海龟绘图有三个关键要素,即方向、位置和画笔。在进行海龟绘图时,主要就是控制这些要素来绘出我们想要的图形。
主要方法:
方向: 在进行海龟绘图时,方向主要用于控制海龟的移动方向。
left()/lt() 方法:让海龟左转 (逆时针) 指定度数。 right()/rt() 方法:让海龟右转 (顺时针) 指定度数。 setheading()/seth() 方法:设置海龟的朝向为0(东)、90(北)、180(西)或 270(南)
位置: 在进行海龟绘图时,位置主要用于控制海龟移动的距离。
forward(distance)/fd(distance):让海龟向前移动指定距离。 backward(distance)/bk(distance):让海龟向后退指定距离。 goto(x,y):让海龟移动到画布中的特定位置。即坐标 (x,y) 所指定的位置。 setx(x):设置海龟的横坐标到 x,纵坐标不变。 sety(y):设置海龟的纵坐标到 y,横坐标不变。 home():海龟移至初始坐标(0,0),并设置朝向为初始方向。
画笔:海龟绘图中的画笔就相当于现实生活中绘图所用的画笔。在海龟绘图中,通过画笔可以控制线条的粗细、颜色和运动的速度。
pensize() 设置画笔的宽度(画笔线条粗细为指定大小); pencolor() 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green","red",也可以是rgb颜色元组。 speed(speed) 设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大画的越快。
from turtle import * screensize(800,600,"red") #设置画布大小,且将背景变为红色 pensize(50) #画笔大小 pencolor('black') #画笔颜色 shape("circle") #形状为圆 speed(3) #画笔速度,参数越大,速度越快 """绘制福字左侧偏旁""" #画点 seth(-60) #画笔方向(参数相当于度数) penup() #抬笔 bk(240) #后退 seth(-45) pendown() #落笔 fd(50) #前进 #画横 seth(45),penup(),bk(135) seth(15),pendown(),fd(135) #画撇 seth(-125),pendown(),fd(200) #画竖 seth(55),penup(),fd(150) seth(-90),pendown(),fd(220) #画点 seth(90),penup(),fd(220) seth(-45),pendown(),fd(60) """画福字右侧部分""" #######画一 seth(70),penup(),fd(190) seth(10),pendown(),fd(120) #######画口 seth(38),penup(),bk(150) #画竖 seth(-85),pendown(),fd(85),penup(),bk(85) #画横 seth(10),pendown(),fd(120) #画竖 seth(-95),pendown(),fd(90) #画横 seth(9),penup(),bk(95),pendown(),fd(95) #######画田 seth(38),penup(),bk(165) #画竖 seth(-85),pendown(),fd(110),penup(),bk(110) #画横 seth(10),pendown(),fd(175) #画竖 seth(-95),pendown(),fd(145) #画口里的横 penup(),bk(85),pensize(30) seth(-170),fd(150),pendown(),bk(150) #画口里的竖 seth(165),penup(),fd(85) seth(-90),pendown(),fd(90) #画横 seth(4),penup(),bk(60),pendown(),pensize(50),fd(120) hideturtle() #隐藏画笔的turtle形状 mainloop() #tkinter模块的事件循环函数,让幕布画完图不关闭,等价于done()