用 Python 画一个滑稽表情

Posted by Python小二 on 2020-05-18

微信自带的表情大家应该都用过,其中奸笑(其他的平台也有叫滑稽的)的表情使用率算是比较高的,对于这个表情,有的人喜欢,也有的人不喜欢,这个都是正常的,我们不讨论这个。

大家应该都知道 Python 的 turtle 库可以画画,本文我们就使用这个库画一个奸笑表情。

由于微信上的表情尺寸较小,看起来不方便,我从网上找了一个大一点的,如下所示:

我们可以看出这个表情的组成部分包括:脸框(就是那个大圆圈)、眼眉、眼眶、眼珠、红腮、嘴,下面我们开始画这几部分。

首先我们画脸框,代码实现如下所示:

1
2
3
4
5
6
7
8
9
10
11
penup()  
goto(\-210,0)  
seth(\-90)  
pendown()  
pencolor('#FFCC33')  
pensize(4)  
begin\_fill()  
circle(210,360)  
fillcolor('#FFFF99')  
end\_fill()  
pencolor('#330033')

看一下效果:

接着眉毛,代码实现如下:

1
2
3
4
5
6
7
penup()  
pensize(4)  
goto(\-180,140)  
pencolor('#585858')  
pendown()  
seth(70)  
circle(\-60,140)  

看一下效果:

再接着画眼眶和眼珠,代码实现如下:

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
# 眼眶  
penup()  
pensize(4)  
goto(\-180,90)  
pencolor('#909090')  
pendown()  
seth(40)  
begin\_fill()  
circle(\-120,80)  
penup()  
goto(\-180,90)  
seth(\-130)  
pendown()  
circle(15,110)  
seth(40)  
circle(\-106,83)  
seth(30)  
circle(18,105)  
fillcolor('white')  
end\_fill()  
# 眼珠  
pensize(2)  
penup()  
goto(30,83)  
pendown()  
begin\_fill()  
circle(8,360)  
fillcolor('black')  
end\_fill()  
penup()  
goto(\-170,83)  
pendown()  
begin\_fill()  
circle(8,360)  
fillcolor('black')  
end\_fill()

看一下效果:

再接着画红腮,代码实现如下:

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
pensize(1)  
pencolor('LightSalmon')  
begin\_fill()  
penup()  
goto(\-160,50)  
pendown()  
seth(\-90)  
for i in range(2):  
for j in range(10):  
forward(j)  
left(9)  
for j in range(10,0,\-1):  
forward(j)  
left(9)  
fillcolor('LightSalmon')  
end\_fill()  
pensize(1)  
pencolor('LightSalmon')  
begin\_fill()  
penup()  
goto(40,50)  
pendown()  
seth(\-90)  
for i in range(2):  
for j in range(10):  
forward(j)  
left(9)  
for j in range(10,0,\-1):  
forward(j)  
left(9)  
fillcolor('LightSalmon')  
end\_fill()  
hideturtle()

看一下效果:

最后我们画嘴,代码实现如下:

1
2
3
4
5
6
7
pensize(5)  
penup()  
goto(\-150,\-30)  
pencolor('#585858')  
pendown()  
seth(\-90)  
circle(150,180)

看一下最终效果:

是不是有内味了。

欢迎微信搜索 Python小二,第一时间阅读、获取源码,回复关键字 1024 可以免费领取个人整理的各类编程语言学习资料。