前言
春节快到了,一年一度的支付宝集五福活动就要来了,阿牛也是突发奇想,看能不能用python的turtle库画个"福"字,试了很久,我的这个“福“”字终于看起来可以了,现将源码分享给大家,拿过去放到python的环境中就可以直接运行哦!嘿嘿嘿!这五福手到擒来啦!
海龟画笔的介绍
海龟绘图是 Python 内置的一个比较有趣的模块,模块名称为 turtle,并且依赖python内置的tkinter模块。它最初源于 20世纪60年代 的 Logo 语言,之后成为了 Python 的内置模块。海龟绘图提供了一些简单的绘图方法,可以根据编写的控制指令(代码),让一个 “海龟” 在屏幕上来回移动,而且可以在它爬行的路径上绘制图形。通过海龟绘图,不仅可以在屏幕上绘制图形,还可以看到整个绘制过程。另外,海龟绘图对初学者十分友好,它能够轻松地编写出很多有趣的实例。
海龟绘图的三要素:
采用海龟绘图有三个关键要素,即方向、位置和画笔。在进行海龟绘图时,主要就是控制这些要素来绘出我们想要的图形。
主要方法:
方向: 在进行海龟绘图时,方向主要用于控制海龟的移动方向。
1
2
3
|
left() / lt() 方法:让海龟左转 (逆时针) 指定度数。 right() / rt() 方法:让海龟右转 (顺时针) 指定度数。 setheading() / seth() 方法:设置海龟的朝向为 0 (东)、 90 (北)、 180 (西)或 270 (南) |
位置: 在进行海龟绘图时,位置主要用于控制海龟移动的距离。
1
2
3
4
5
6
|
forward(distance) / fd(distance):让海龟向前移动指定距离。 backward(distance) / bk(distance):让海龟向后退指定距离。 goto(x,y):让海龟移动到画布中的特定位置。即坐标 (x,y) 所指定的位置。 setx(x):设置海龟的横坐标到 x,纵坐标不变。 sety(y):设置海龟的纵坐标到 y,横坐标不变。 home():海龟移至初始坐标( 0 , 0 ),并设置朝向为初始方向。 |
画笔:海龟绘图中的画笔就相当于现实生活中绘图所用的画笔。在海龟绘图中,通过画笔可以控制线条的粗细、颜色和运动的速度。
1
2
3
|
pensize() 设置画笔的宽度(画笔线条粗细为指定大小); pencolor() 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如 "green" , "red" ,也可以是rgb颜色元组。 speed(speed) 设置画笔移动速度,画笔绘制的速度范围[ 0 , 10 ]整数,数字越大画的越快。 |
“福”字源码
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
|
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() |
结果展示
总结
到此这篇关于用python画个敬业福字代码的文章就介绍到这了,更多相关python画福内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_57421630/article/details/122642729