用 Python 画一个滑稽表情

简介: 用 Python 画一个滑稽表情

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

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

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

image.png

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

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

penup()  
goto(\-210,0)  
seth(\-90)  
pendown()  
pencolor('#FFCC33')  
pensize(4)  
begin\_fill()  
circle(210,360)  
fillcolor('#FFFF99')  
end\_fill()  
pencolor('#330033')

看一下效果:

image.png

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

penup()  
pensize(4)  
goto(\-180,140)  
pencolor('#585858')  
pendown()  
seth(70)  
circle(\-60,140)

看一下效果:

image.png

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

# 眼眶  
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()

看一下效果:

image.png

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

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()

看一下效果:

image.png

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

pensize(5)  
penup()  
goto(\-150,\-30)  
pencolor('#585858')  
pendown()  
seth(\-90)  
circle(150,180)

看一下最终效果:

image.png

是不是有内味了。

image.png

相关文章
|
数据可视化 数据挖掘 大数据
Pandas+Pyecharts | 北京某平台二手房数据分析可视化
Pandas+Pyecharts | 北京某平台二手房数据分析可视化
|
存储 数据可视化 计算机视觉
树莓派计算机视觉编程:1~5
树莓派计算机视觉编程:1~5
342 0
|
存储 算法 数据可视化
Python 金融编程第二版(GPT 重译)(一)(1)
Python 金融编程第二版(GPT 重译)(一)
227 1
|
消息中间件 移动开发
PCIe RN (Readiness Notification)介绍
PCIe RN (Readiness Notification)介绍
1017 0
PCIe RN (Readiness Notification)介绍
|
机器学习/深度学习 存储 算法
普林斯顿算法讲义(三)(4)
普林斯顿算法讲义(三)
291 1
|
Java 测试技术 Go
流畅的 Python 第二版(GPT 重译)(四)(4)
流畅的 Python 第二版(GPT 重译)(四)
203 1
|
存储 算法 安全
微信团队分享:来看看微信十年前的IM消息收发架构,你做到了吗
好的架构是迭代出来的,却也少不了良好的设计,本文将带大家回顾微信背后最初的也是最核心的IM消息收发技术架构,愿各位读者能从中获得启发。
494 1
|
SQL 关系型数据库 流计算
Flink数据源问题之脏数据如何解决
Flink数据源是指Apache Flink用于读取外部系统数据的接口或组件;本合集将探讨Flink数据源的类型、配置方法和最佳实践,以及在使用数据源时可能遇到的错误和解决方案。
268 2
|
XML 关系型数据库 PostgreSQL
Pandas 2.2 中文官方教程和指南(一)(2)
Pandas 2.2 中文官方教程和指南(一)
399 0
|
Java Scala C#
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
232 0