python canvas画弧度_朋友圈疯转的“佩奇”是啥?用 Python 画个小猪佩奇来告诉你...
(点击上方公众号,可快速关注一起学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-8from 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.08
left(3) #向左转3度
forward(a) #向前走a的步长else:
a=a-0.08
left(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和fillcolor
end_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.08
lt(3) #向左转3度
fd(a) #向前走a的步长else:
a=a-0.08
lt(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那些事后台,回复小猪佩奇可获得。
(完)
看完本文有收获?请转发分享给更多人
关注「Python那些事」,做全栈开发工程师
python canvas画弧度_朋友圈疯转的“佩奇”是啥?用 Python 画个小猪佩奇来告诉你...相关推荐
- python是个什么东西刷爆朋友圈_五星好评!这门Python神作刷爆朋友圈
原标题:五星好评!这门Python神作刷爆朋友圈 2019年,有人说是Python元年,背靠AI和大数据,连续半年拿下TOP1编程语言,这些都给了Python的底气,所以无论是薪资还是招聘需求,都越来 ...
- 【微信辅助】疫情当前,python帮你找出朋友圈的武汉朋友给予关怀
我是程序员小小叶,为大家带来原创精彩技术内容. 疫情无论是对于个体还是企业都是无法承受之重.希望疫情早日过去,这是作为一个普通人一个的小小心愿. 我们身边的亲朋好友也或多或少受到了疫情的影响,让我们来 ...
- Python爬虫爬取微信朋友圈的方法,感兴趣的朋友可以了解下
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 小雨 | 作者 python教程 | 来源 接下来,我们将实现微信朋友圈的 ...
- Python爬虫爬取微信朋友圈
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ ...
- python canvas画弧度_只要十分钟,python绘图神器turtle了解一下?
python的强大在于它有许多的强大的库,turtle就是其中之一. 利用turtle,你可以进行交互式的绘画,作为一个艺术白痴,想要画一幅画可能很困难,但是利用python的turtle库,只需要几 ...
- python canvas画弧度_超清字符画——Python代码
字符画视频如下,可以先预览一下效果(建议进入BILIBILI全屏观看): [樱花绽放]代码敲出武汉加油(全屏观看)期待战疫成功,武大赏樱_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.b ...
- python canvas画弧度_趣玩 Python 之绘制基本图形
Python中的类库极其丰富,数据科学中经常会用到可视化技术.今天我们来一学习一下Python中基本图形的绘制方法,本文我们将主要基于turtle(小乌龟)库来画图~ 为了方便后面进行交互性演示,这里 ...
- python canvas画弧度_用Python画樱花?想得美就能画得美(下)
上一篇我们介绍了一种手绘玫瑰的方法,你当然也可以用类似的方法画一朵或者几朵樱花 咯,看你的艺术底子了. 不过今天我们用优美的数学方法来画樱花,也会很漂亮的. 先画朵太阳花暖暖身吧. import tu ...
- python canvas画弧度_首发:Python-tkinter制作动态雷达示意图及探讨
1 说明: ===== 1.1 动态雷达示意图,用python来实现,我介绍过2篇:opencv(cv2)法和pygame法,虽然也是本人原创,但是我不敢勾选原创. <再发:python+ope ...
最新文章
- 口语学习Day5:今天聊聊美国路牌PED XING是什么?
- matlab dsp实验报告,matlab实验报告14.pdf
- FileUpload控件学习
- 在ADF 12.2.1.3中使用基于JSON的REST Web服务
- C++:String的写时拷贝
- 鼠标按下改变RelativeLayout背景颜色,松开变回
- java 模板接口开发_微信公众平台 发送模板消息(Java接口开发)
- Java——标准异常
- 如何加快C++代码的编译速度
- linux分屏显示文件行数,linux常用命令集合1
- iframe关闭当前窗口_iframe 、 a标签、input标签
- 手机短信/彩信接口开发经验介绍
- 【java工具类】将明文密码转成MD5密码
- B2B行业使用什么CRM好? B2B行业的专属CRM—协同级CRM
- ps隐藏路径快捷键和PS隐藏路径的三种方法
- 深圳经济特区新居住证将实施签注制度
- LeetCode 714. 买卖股票的最佳时机含手续费
- csdn博客文章头部自动生成目录
- 《仿美团》项目研发总结
- Three.js设置背景
热门文章
- css !important的用法
- Java NIO文件路径管理:Path类和Paths类
- svc预测概率_利用Python高概率预测英雄联盟胜负,分析了1982场才得出的数据!...
- java获取专辑封面_android获取音乐文件的内置专辑图片实现思路及代码
- Spring Mvc 原理图
- 用腻了几大主流音乐平台?不妨试试这几个小众又精致的音乐App
- mysql数据库导出mydump的拒绝访问:解决小方案
- Postman-简单接口测试-百度ip查询
- 51单片机 蓝牙 循迹 ,定时器产生4个PWM
- 域名防封-微信防屏蔽的原理以及实现