基本原理
选好画板大小,设置好画笔颜色、粗细,定位好位置,依次画鼻子、头、耳朵、眼睛、腮、嘴、身体、手脚、尾巴,完事儿。
都知道,turtle 是 python 内置的一个比较有趣味的模块,俗称“海龟绘图”,它是基于 tkinter 模块打造,提供一些简单的绘图工具。
在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动。这个海龟带着一只钢笔,我们可以让海龟无论移动到哪都使用这只钢笔来绘制线条。通过编写代码,以各种很酷的模式移动海龟,我们可以绘制出令人惊奇的图片。使用海龟作图,我们不仅能够只用几行代码就创建出令人印象深刻的视觉效果,而且还可以跟随海龟看看每行代码如何影响到它的移动。这能够帮助我们理解代码的逻辑。
所以,海龟作图也常被用作新手学习 python 的一种方式。更丰富详细的功能及知识可以参考官方文档:
https://docs.python.org/3/library/turtle.html
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
from turtle import *
def nose(x,y): #鼻子
penup() #提起笔
goto(x,y) #定位
pendown() #落笔,开始画
setheading( - 30 ) #将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)
begin_fill() #准备开始填充图形
a = 0.4
for i in range ( 120 ):
if 0 < = i< 30 or 60 < = i< 90 :
a = a + 0.08
left( 3 ) #向左转3度
forward(a) #向前走a的步长
else :
a = a - 0.08
left( 3 )
forward(a)
end_fill() #填充完成
penup()
setheading( 90 )
forward( 25 )
setheading( 0 )
forward( 10 )
pendown()
pencolor( 255 , 155 , 192 ) #画笔颜色
setheading( 10 )
begin_fill()
circle( 5 )
color( 160 , 82 , 45 ) #返回或设置pencolor和fillcolor
end_fill()
penup()
setheading( 0 )
forward( 20 )
pendown()
pencolor( 255 , 155 , 192 )
setheading( 10 )
begin_fill()
circle( 5 )
color( 160 , 82 , 45 )
end_fill()
def head(x,y): #头
color(( 255 , 155 , 192 ), "pink" )
penup()
goto(x,y)
setheading( 0 )
pendown()
begin_fill()
setheading( 180 )
circle( 300 , - 30 )
circle( 100 , - 60 )
circle( 80 , - 100 )
circle( 150 , - 20 )
circle( 60 , - 95 )
setheading( 161 )
circle( - 300 , 15 )
penup()
goto( - 100 , 100 )
pendown()
setheading( - 30 )
a = 0.4
for i in range ( 60 ):
if 0 < = i< 30 or 60 < = i< 90 :
a = a + 0.08
lt( 3 ) #向左转3度
fd(a) #向前走a的步长
else :
a = a - 0.08
lt( 3 )
fd(a)
end_fill()
def ears(x,y): #耳朵
color(( 255 , 155 , 192 ), "pink" )
penup()
goto(x,y)
pendown()
begin_fill()
setheading( 100 )
circle( - 50 , 50 )
circle( - 10 , 120 )
circle( - 50 , 54 )
end_fill()
penup()
setheading( 90 )
forward( - 12 )
setheading( 0 )
forward( 30 )
pendown()
begin_fill()
setheading( 100 )
circle( - 50 , 50 )
circle( - 10 , 120 )
circle( - 50 , 56 )
end_fill()
def eyes(x,y): #眼睛
color(( 255 , 155 , 192 ), "white" )
penup()
setheading( 90 )
forward( - 20 )
setheading( 0 )
forward( - 95 )
pendown()
begin_fill()
circle( 15 )
end_fill()
color( "black" )
penup()
setheading( 90 )
forward( 12 )
setheading( 0 )
forward( - 3 )
pendown()
begin_fill()
circle( 3 )
end_fill()
color(( 255 , 155 , 192 ), "white" )
penup()
seth( 90 )
forward( - 25 )
seth( 0 )
forward( 40 )
pendown()
begin_fill()
circle( 15 )
end_fill()
color( "black" )
penup()
setheading( 90 )
forward( 12 )
setheading( 0 )
forward( - 3 )
pendown()
begin_fill()
circle( 3 )
end_fill()
def cheek(x,y): #腮
color(( 255 , 155 , 192 ))
penup()
goto(x,y)
pendown()
setheading( 0 )
begin_fill()
circle( 30 )
end_fill()
def mouth(x,y): #嘴
color( 239 , 69 , 19 )
penup()
goto(x,y)
pendown()
setheading( - 80 )
circle( 30 , 40 )
circle( 40 , 80 )
def setting(): #参数设置
pensize( 4 )
hideturtle() #使乌龟无形(隐藏)
colormode( 255 ) #将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内
color(( 255 , 155 , 192 ), "pink" )
setup( 840 , 500 )
speed( 10 )
def main():
setting() #画布、画笔设置
nose( - 100 , 100 ) #鼻子
head( - 69 , 167 ) #头
ears( 0 , 160 ) #耳朵
eyes( 0 , 140 ) #眼睛
cheek( 80 , 10 ) #腮
mouth( - 20 , 30 ) #嘴
done()
if __name__ = = '__main__' :
main()
|
总结
以上所述是小编给大家介绍的使用python画个小猪佩奇的示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://blog.csdn.net/moshowgame/article/details/80551464