用 Python 画一个奸笑(滑稽)表情
时间:2022-07-23
本文章向大家介绍用 Python 画一个奸笑(滑稽)表情,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
微信自带的表情大家应该都用过,其中奸笑(其他的平台也有叫滑稽的)的表情使用率算是比较高的,对于这个表情,有的人喜欢,也有的人不喜欢,这个都是正常的,我们不讨论这个。
大家应该都知道 Python 的 turtle 库可以画画,本文我们就使用这个库画一个奸笑表情。
由于微信上的表情尺寸较小,看起来不方便,我从网上找了一个大一点的,如下所示:
我们可以看出这个表情的组成部分包括:脸框(就是那个大圆圈)、眼眉、眼眶、眼珠、红腮、嘴,下面我们开始画这几部分。
首先我们画脸框,代码实现如下所示:
penup()
goto(-210,0)
seth(-90)
pendown()
pencolor('#FFCC33')
pensize(4)
begin_fill()
circle(210,360)
fillcolor('#FFFF99')
end_fill()
pencolor('#330033')
看一下效果:
接着眉毛,代码实现如下:
# 左眉毛
penup()
pensize(4)
goto(-180,140)
pencolor('#585858')
pendown()
seth(70)
circle(-60,140)
# 右眉毛
penup()
pensize(4)
goto(180,140)
pencolor('#585858')
pendown()
seth(110)
circle(60,140)
看一下效果:
再接着画眼眶和眼珠,代码实现如下:
# 左眼眶
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()
# 右眼眶
penup()
goto(20,90)
pendown()
seth(40)
begin_fill()
circle(-120,80)
penup()
goto(20,90)
pendown()
seth(-130)
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()
看一下效果:
再接着画红腮,代码实现如下:
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()
看一下效果:
最后我们画嘴,代码实现如下:
pensize(5)
penup()
goto(-150,-30)
pencolor('#585858')
pendown()
seth(-90)
circle(150,180)
看一下最终效果:
是不是有内味了。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python的包与模块导入问题
- 3分钟短文 | Laravel 自定义 SQL 查询参数绑定
- 宇智波程序笔记8- 解数独(Sudoku Solver)
- Angular如何响应DOM event
- Angular Template expression operators介绍
- k8s资源对象的升级、回滚、扩容、缩容
- emgucv之Matrix操作
- 使用 K8s 进行作业调度实战分享
- Kafka 常用运维脚本
- R语言进阶之Lattice绘图
- Scala守卫语句的集中用法
- SQL中的Null值处理
- SQL 获取上一个订单的状态
- Redis案例:Redis Cluster分片数据不均匀
- Kubectl命令行jsonpath的使用