用 Python 画一个捂脸表情

逻辑撷星使
• 阅读 1834

微信中的捂脸表情相信大家都不陌生,我见过以及自己使用这个表情的频率都是比较高的,可以说这个表情算是大部分人的主打表情之一了,本文我使用 Python 来画一下这个表情,我们使用到的库还是 turtle。

实现

因微信中的表情较小,我到网上找了一个大一点的,一起来看一下:

用 Python 画一个捂脸表情

从图中我们可以看出这个表情由:脸框(那个大圆圈)、手、眼睛、眼泪、嘴(包括牙齿),下面我们看一下如何使用 Python 来画它。

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

turtle.speed(5)
turtle.setup(500, 500)
turtle.pensize(5)
turtle.right(90)
turtle.penup()
turtle.fd(100)
turtle.left(90)
turtle.pendown()
turtle.begin_fill()
turtle.pencolor("#B8860B")
turtle.circle(150)
turtle.fillcolor("#FFFF99")
turtle.end_fill()

看一下效果:

用 Python 画一个捂脸表情

接着来画嘴(包括牙齿),代码实现如下:

turtle.penup()
turtle.goto(77, 20)
turtle.pencolor("#B8860B")
turtle.goto(0, 50)
turtle.right(30)
turtle.fd(110)
turtle.right(90)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor("#925902")
turtle.circle(-97, 160)
turtle.goto(92, -3)
turtle.end_fill()
turtle.penup()
turtle.goto(77, -25)
# 牙齿
turtle.pencolor("white")
turtle.begin_fill()
turtle.fillcolor("white")
turtle.goto(77, -24)
turtle.goto(-81, 29)
turtle.goto(-70, 43)
turtle.goto(77, -8)
turtle.end_fill()
turtle.penup()
turtle.goto(0, -100)
turtle.setheading(0)
turtle.pendown()

看一下效果:

用 Python 画一个捂脸表情

再接着来画眼泪,代码实现如下:

# 左边眼泪
turtle.left(90)
turtle.pensize(3)
turtle.penup()
turtle.fd(150)
turtle.right(60)
turtle.fd(-150)
turtle.pendown()
turtle.left(20)
turtle.pencolor("#155F84")
turtle.fd(150)
turtle.right(180)
position1 = turtle.position()
turtle.begin_fill()
turtle.fillcolor("#B0E0E6")
turtle.fd(150)
turtle.right(20)
turtle.left(270)
turtle.circle(-150, 18)
turtle.right(52)
turtle.fd(110)
position2 = turtle.position()
turtle.goto(-33, 90)
turtle.end_fill()
# 右边眼泪
turtle.penup()
turtle.goto(0, 0)
turtle.setheading(0)
turtle.left(90)
turtle.fd(50)
turtle.right(150)
turtle.fd(150)
turtle.left(150)
turtle.fd(100)
turtle.pendown()
turtle.begin_fill()
turtle.fd(-100)
turtle.fillcolor("#B0E0E6")
turtle.right(60)
turtle.circle(150, 15)
turtle.left(45)
turtle.fd(66)
turtle.goto(77, 20)
turtle.end_fill()

看一下效果:

用 Python 画一个捂脸表情

再接着画眼睛,代码实现如下:

turtle.pensize(5)
turtle.penup()
turtle.pencolor("black")
turtle.goto(-65, 75)
turtle.setheading(0)
turtle.left(27)
turtle.fd(30)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor("black")
turtle.left(90)
turtle.circle(30, 86)
turtle.goto(position2[0], position2[1])
turtle.goto(position1[0], position1[1])
turtle.end_fill()

看一下效果:

用 Python 画一个捂脸表情

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

turtle.pencolor("#B8860B")
turtle.fillcolor("#FFFF99")
arc(-110, 10, 110, -40, 30)
turtle.begin_fill()
turtle.circle(300, 35)
turtle.circle(13, 120)
turtle.setheading(-50)
turtle.fd(20)
turtle.setheading(130)
turtle.circle(200, 15)
turtle.circle(12, 180)
turtle.fd(40)
turtle.setheading(137)
turtle.circle(200, 16)
turtle.circle(12, 160)
turtle.setheading(-35)
turtle.fd(45)
turtle.setheading(140)
turtle.circle(200, 13)
turtle.circle(11, 160)
turtle.setheading(-35)
turtle.fd(40)
turtle.setheading(145)
turtle.circle(200, 9)
turtle.circle(10, 180)
turtle.setheading(-31)
turtle.fd(50)
turtle.setheading(-45)
turtle.pensize(7)
turtle.right(5)
turtle.circle(180, 35)
turtle.end_fill()
turtle.begin_fill()
turtle.setheading(-77)
turtle.fd(50)
turtle.left(-279)
turtle.fd(16)
turtle.circle(29, 90)
turtle.end_fill()

看一下最终效果:

用 Python 画一个捂脸表情

是不是有内味了。

总结

本文我们使用 Python 画了一个捂脸表情,如果大家对实现效果不满意的话,可以自己动手将它修改成自己满意的样子。

源码在公众号 Python小二 后台回复 fp 获取。

声明:本文非首发于个人号
点赞
收藏
评论区
推荐文章
onlyloveyd onlyloveyd
4年前
Android抖音去水印APP
本文同步发表于我的微信公众号,在微信搜索OpenCVorAndroid即可关注。前言微信8.0.0更新以后,大伙玩得不亦乐乎,除了会动的表情,特效的炸弹、烟花等,还有一个亮点就是微信个人状态背景,既可以挂图片,更可以挂视频,给人一种万物皆可短视频的感觉。我也很爱这个功能,但是奈何鄙人才疏学浅,没法制作炫酷的短视频。只能使用去抖音水印工具获取
想天浏览器 想天浏览器
2年前
短说通用版 3.8.0测试版发布|积分清零、排行榜、全新表情包等功能
Hi大家好,我是给你们带来惊喜的运营小番茄。本期小番茄为大家汇报一下短说最新进程:短说通用版3.8.0测试版,本次更新大量功能,主要围绕大家心心念念的积分清零、全新表情包、数据导出、积分排行榜等,涉及平台:H5、App、微信小程序。可
Wesley13 Wesley13
3年前
java emoji表情存储解决方案
1.问题产生情况我遇到这个问题是做微信开发的时候有些有用的头像用了微信的emoji表情,然而我的mysql数据库用的编码是utf8\_general\_ci,就是utf8编码,结果也就报错误了。2.为什么会出现这种原因因为mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储em
Wesley13 Wesley13
3年前
java存储emoji表情解决方案
1、问题产生情况  在开发IM时有些有用的头像用了emoji表情或者聊天的时候用了emoji表情,然而mysql数据库用的编码是utf8\_general\_ci,就是utf8编码,结果也就报错误了。emoji表情存不了在数据库。  java.sql.SQLException:Incorrectstringvalue:'\\
Wesley13 Wesley13
3年前
mysql日常小练习
1.现有表情况如下:CreatetableIfNotExistsEmployee(Idint,Salaryint);TruncatetableEmployee;insertintoEmployee(Id,Salary)values('1','100');insertintoEm
Wesley13 Wesley13
3年前
MySQL插入emoji表情失败问题的解决方法
前言之前一直认为UTF8是万能的字符集问题解决方案,直到最近遇到这个问题。最近在做新浪微博的爬虫,在存库的时候发现只要保持emoji表情,就回抛出以下异常:Incorrectstringvalue:'\xF0\x90\x8D\x83\xF0\x90...'众所周知UTF8是3个字节,其中已经包括我们日常能见过的绝大多
数据堂 数据堂
1年前
面部表情识别的技术实现
面部表情识别是一项复杂的技术,需要综合运用计算机视觉、机器学习、深度学习等多种技术。本文将介绍面部表情识别的技术实现过程,包括图像采集、预处理、特征提取、分类识别等方面。首先,在进行面部表情识别之前,需要采集面部图像作为输入数据。为了获得高质量的图像,需要
数据堂 数据堂
1年前
面部表情识别的挑战和前景
面部表情识别作为一项复杂的技术,面临着许多挑战,例如表情多样性、表情变化性、肤色和光照影响等。本文将探讨面部表情识别的挑战和前景,分析其发展方向和趋势。首先,面部表情的多样性是面部表情识别面临的主要挑战之一。不同的人具有不同的面部特征和表情表达方式,这增加
即时通讯的核心功能点有哪些?
融云即时通讯的核心功能点包括以下几点:1、支持各种消息类型内置文本、表情、图片、语音、位置、动态表情、小视频、文件等各种消息类型,也可通过自定义消息功能定制自己的消息类型。2、消息云端存储开通单群聊、聊天室消息云端存储功能,在任何设备上打开应用均可同步拉取
布袋罗汉 布袋罗汉
2年前
如何在 Mac 上打开表情符号窗口?
打开表情符号窗口和切换到字符查看器以获取其他符号。Mac菜单栏包含Finder的操作以及您当前使用的应用程序。这使得菜单栏成为记住如何访问表情符号键盘的最简单方法。使用菜单栏,单击「编辑」菜单,选择「表情与符号」,或者使用快捷键CommandContro
数据堂 数据堂
1年前
面部表情识别在人机交互中的应用
随着人工智能技术的不断发展,人机交互已经成为了人们生活中不可或缺的一部分。面部表情识别作为人机交互的重要组成部分,有着广泛的应用场景和价值。本文将探讨面部表情识别在人机交互中的应用,包括情感识别、表情分析、人机交互等方面。面部表情识别在人机交互中有着广泛的