点击上方“何俊林”,马上关注

真爱,请置顶或星标

作者:公众号-恋习Python,python那些事
https://mp.weixin.qq.com/s/6hHkrxSOqU_fpvwPwp8YGw

今天朋友圈最火爆的是啥?一则“啥是佩奇”的视频短片,营销手段由衷佩服。今年社交平台上最火的带货女王是谁?范冰冰?杨幂?Angelababy?不,是猪猪女孩小猪佩奇。

如果你经常用抖音、快手、B站、知乎、微博……或者类似的任何一个内容或社交平台,那你很大概率能答出这道题:

答案是:掌声送给社会人。

随着口号喊响,社会人小猪佩奇似乎一夜之间就在短视频平台和社交网络上爆火了,同时网络上遍布了小猪佩奇九步画法。于是我画了一下,结果,不忍直视......

我画的,哈哈

人家的画

观察这个图像可以发现,小猪佩奇在构图基本是各种曲线,类抛物线、类圆、类椭圆、类二次贝塞尔曲线。这里说的都是“类”,这也正是小猪佩奇的构图精髓,一种手绘风格,而不是标准刻板的线条。在前端技术选型上,画图首先想到的是svg、canvas,但它们本身就擅长画图,而且网上都有在线编辑svg的工具,这就没意思了,我想佩奇也不会答应的。于是我想用纯粹的Python来做,这样更有挑战,因为画图画曲线不是Python擅长的事情。

基本思路:选好画板大小,设置好画笔颜色,粗细,定位好位置,依次画鼻子,头、耳朵,眼睛,腮,嘴,身体,手脚,尾巴,完事。

都知道,turtle 是 python 内置的一个比较有趣味的模块,俗称 海龟绘图,它是基于 tkinter 模块打造,提供一些简单的绘图工具。

在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动。这个海龟带着一只钢笔,我们可以让海龟无论移动到哪都使用这只钢笔来绘制线条。通过编写代码,以各种很酷的模式移动海龟,我们可以绘制出令人惊奇的图片。使用海龟作图,我们不仅能够只用几行代码就创建出令人印象深刻的视觉效果,而且还可以跟随海龟看看每行代码如何影响到它的移动。这能够帮助我们理解代码的逻辑。所以海龟作图也常被用作新手学习 Python 的一种方式。更丰富详细的功能及知识可以参考:

官方文档:

https://docs.python.org/3/library/turtle.html

了解了tuttle的用法之后就可以开始实战了。哈哈,先看看效果视频:

详细代码如下:

#coding:utf-8
from turtle import *def nose(x,y):#鼻子penup()#提起笔goto(x,y)#定位pendown()#落笔,开始画setheading(-30)#将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)begin_fill()#准备开始填充图形a=0.4for i in range(120):if 0<=i<30 or 60<=i<90:a=a+0.08left(3) #向左转3度forward(a) #向前走a的步长else:a=a-0.08left(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和fillcolorend_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.4for i in range(60):if 0<=i<30 or 60<=i<90:a=a+0.08lt(3) #向左转3度fd(a) #向前走a的步长else:a=a-0.08lt(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()

思路其实很简单,就是通过trutle模块实现基本的圆,椭圆,曲线等,难点在于,如何定位每个部位的位置(建议先草图画画)。完整代码需要300行,为了限于篇幅,只放了一部分代码,只画了小猪佩奇的头部,你能补充完整吗?

朋友圈疯转的“佩奇”是啥?用 Python 画个小猪佩奇来告诉你相关推荐

  1. 用python画小猪佩奇代码_用python画个小猪佩奇(turtle示例源码)

    [实例简介]来副小猪佩奇,用python画个小猪佩奇 [实例截图] [核心代码]# coding:utf-8 import turtle as t def nose(x,y):#鼻子 t.pu() t ...

  2. python代码画小猪佩奇动画片全集_使用python画个小猪佩奇的示例代码

    本文给大家较详细的介绍了使用python画个小猪佩奇的示例代码,感兴趣的朋友一起看看吧 基本原理 选好画板大小,设置好画笔颜色.粗细,定位好位置,依次画鼻子.头.耳朵.眼睛.腮.嘴.身体.手脚.尾巴, ...

  3. python画-使用python画个小猪佩奇的示例代码

    基本原理 选好画板大小,设置好画笔颜色.粗细,定位好位置,依次画鼻子.头.耳朵.眼睛.腮.嘴.身体.手脚.尾巴,完事儿. 都知道,Turtle 是 Python 内置的一个比较有趣味的模块,俗称&qu ...

  4. python画图小猪佩奇_用python画个小猪佩奇

    突发奇想,拿python画个小猪佩奇,大家可以运行着玩玩 draw.py # -*- coding:utf-8 -*- from turtle import * def nose(x,y):#鼻子 p ...

  5. python海龟画小猪佩奇动画片全集_用python画个小猪佩奇

    突发奇想,拿python画个小猪佩奇,大家可以运行着玩玩 draw.py # -*- coding:utf-8 -*- from turtle import * def nose(x,y):#鼻子 p ...

  6. 用python画佩奇_使用python画个小猪佩奇的示例代码

    基本原理 选好画板大小,设置好画笔颜色.粗细,定位好位置,依次画鼻子.头.耳朵.眼睛.腮.嘴.身体.手脚.尾巴,完事儿. 都知道,Turtle 是 Python 内置的一个比较有趣味的模块,俗称&qu ...

  7. 用python画苹果的代码_使用python画个小猪佩奇的示例代码

    基本原理 选好画板大小,设置好画笔颜色.粗细,定位好位置,依次画鼻子.头.耳朵.眼睛.腮.嘴.身体.手脚.尾巴,完事儿. 都知道,Turtle 是 Python 内置的一个比较有趣味的模块,俗称&qu ...

  8. python canvas画弧度_朋友圈疯转的“佩奇”是啥?用 Python 画个小猪佩奇来告诉你...

    (点击上方公众号,可快速关注一起学Python) 来源:公众号-恋习Python   链接: https://mp.weixin.qq.com/s/6hHkrxSOqU_fpvwPwp8YGw 今天朋 ...

  9. 用python 画个小猪佩奇

    不知道大家小时候有没有学习过logo语言,就是操纵一只小王八,来画各种图案.博主小学微机课就学习了这个,最近发现python的turtle包就是logo语言,所以画个小猪佩奇和大家分享. 代码来自知乎 ...

  10. python画出小猪佩奇

    作为一个python的学习者,让我萌生了用python画社会人的想法. 看这个图像可以发现,佩奇由各种曲线.类抛物线.类圆.类椭圆等组成.这里提到的"类",是小猪佩奇的构图精髓,一 ...

最新文章

  1. Linux中的简单文本处理
  2. python输入函数格式_python如何提取.c文件中的指定函数的输入参数
  3. Databricks基本操作
  4. Select 多个表并且相关联转置
  5. ng-init,ng-controller,ng-model
  6. webService学习3:客户端生成webservice代码
  7. 列表、字典补充点、strJoin方法、set()集合、和深浅拷贝
  8. python wget安装_Macbook系统环境安装wget的2个方法 - 传统包及Homebrew安装
  9. extern 在c/c++ 中的作用
  10. 如何查看linux CPU总占用率?
  11. java取负数_阿里巴巴 Java 开发手册之MySQL 规约
  12. 如何搭建数据标准管理平台
  13. SQL Server-【知识与实战VI】索引信息
  14. [转]WCF RIA Services
  15. 玩家可以输入辅助指令_三菱FX系列PLC输入输出与辅助继电器之间有什么关系?...
  16. 开关电源中输出电容的ESR会影响负载的动态响应
  17. 【The Economist】2018经济学人杂志经济学人双语版阅读分享资源
  18. oracle 逗号连接表是相当于什么
  19. 前端面试基本---this 指向(call、apply、bind用法及区别详解)
  20. Java语言与开发环境

热门文章

  1. linux远程控制本地用户登录,linux 本地无法登录 远程可以登陆的解决办法
  2. 三维重建_彩色图和深度图转点云文件、ply和pcd相互转换、点云合并
  3. 矩阵运算_Eigen使用_基本数据类型
  4. Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
  5. 90+深度学习开源数据集整理|包括目标检测、工业缺陷、图像分割等多个方向...
  6. leetcode 189. 旋转数组(Rotate Array)
  7. java虚拟机学习笔记(五)---运行时的数据区域
  8. iOS CoreData (二) 版本升级和数据库迁移
  9. MyBatis自学(5):延迟加载
  10. MySQL select