亲宝软件园·资讯

展开

python画福

馆主阿牛 人气:0

前言

春节快到了,一年一度的支付宝集五福活动就要来了,阿牛也是突发奇想,看能不能用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()

结果展示

在这里插入图片描述

总结

加载全部内容

相关教程
猜你喜欢
用户评论