0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

啥是佩琦?我们用Python画给你看!

电子工程师 来源:工程师李察 2019-01-19 10:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

刚刚,

被《啥是佩奇》这支广告片刷屏了。

佩奇明明是个喜剧角色,

却看哭了所有人。

啥是佩奇

快过年了

在农村爷爷给城里的小孙子打电话

小孙子说想要“佩奇”

为了满足小孙子的愿望

爷爷开始满村子找佩奇

开片爷爷在电话这头的一段话就很抓人心,

全世界的爷爷都是这样疼孙儿的,

一下子就让观众有共情的心理。

一句“什么是佩奇?”

铺垫了爷爷接下来的一段寻找佩奇之路,

最后爷爷找到的佩奇骨络清奇,

却是圈主见过的全世界最可爱的小猪佩奇!

不知道大家看完什么感觉

反正我看完是哭了

我看网友们也纷纷留言

说自己哭笑两重奏

看着爷爷满村子找佩奇,我有点心疼了。为此我想用纯粹的Python来告诉爷爷,啥是佩奇?

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

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

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

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

了解了tuttle的用法之后就可以开始实战了。

代码示例:

from turtle import*def nose(x,y):#鼻子 penup()#提起笔 goto(x,y)#定位 pendown()#落笔,开始画 setheading(-30)#将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南) begin_fill()#准备开始填充图形 a=0.4 for 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.4    for 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 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模块实现基本的圆,椭圆,曲线等,难点在于,如何定位每个部位的位置(建议先草图画画)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2822

    浏览量

    52798
  • 逻辑
    +关注

    关注

    2

    文章

    834

    浏览量

    30053
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89586

原文标题:啥是佩琦?我们用Python画给你看!

文章出处:【微信号:BigDataDigest,微信公众号:大数据文摘】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Python调用API教程

    两个不同系统之间的信息交互。在这篇文章中,我们将详细介绍Python调用API的方法和技巧。 一、Requests库发送HTTP请求 使用Python调用API的第一步是发送HTTP
    的头像 发表于 11-03 09:15 326次阅读

    Python 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    一、技术选型:为什么选 Python 而不是 Java? 结论: “调研阶段 Python,上线后如果 QPS 爆表再考虑 Java 重构。” 二、整体架构速览(3 分钟看懂) 三、开发前准备(5
    的头像 发表于 10-21 16:59 386次阅读
    <b class='flag-5'>用</b> <b class='flag-5'>Python</b> 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    这两种TVS有不同?

    我们查看TVS二极管的规格书,常会看到有以下两种种引脚功能标识图:对于初学者,看到感到疑惑,他们一样吗?他们有区别?为啥有的两个尖头往外,阳极连在一起,有的两个尖头往里,阴极连在一起?一连三问。EMC小哥根据自己经验略作分析。使用这
    的头像 发表于 09-15 20:27 581次阅读
    这两种TVS有<b class='flag-5'>啥</b>不同?

    k230的两个csi0和csi1有?它怎么

    k230的两个csi0和csi1有?它怎么?在canmv上,求各位大佬推资料
    发表于 06-06 08:21

    科大讯飞斩获恰克年度卓越品牌奖

    近日,第十五届中国国际机器人高峰论坛暨第十一届恰克奖颁奖仪式在芜湖落幕。本届活动延续“遇见恰克·预见新未来”主题,聚焦机器人产业的高质量发展,吸引了来自机器人及智能制造领域专家、企业高管、行业
    的头像 发表于 05-30 16:47 835次阅读

    嵌入式和单片机的区别?一文简单明了的给你讲透两者的技术本质!

    上周有个做智能硬件创业的朋友问我:"我们产品的是STM32单片机,但方案商总说要做嵌入式系统,这两者到底有区别?"这个问题其实戳中了大多数电子工程师的认知盲区。作为深耕物联网
    的头像 发表于 04-21 16:10 2143次阅读
    嵌入式和单片机的区别?一文简单明了的<b class='flag-5'>给你</b>讲透两者的技术本质!

    ​如何在虚拟环境中使用 Python,提升你的开发体验~

    RaspberryPiOS预装了Python,你需要使用其虚拟环境来安装包。今天出版的最新一期《TheMagPi》杂志刊登了我们文档负责人NateContino撰写的一篇实用教程,帮助你入门
    的头像 发表于 03-25 09:34 629次阅读
    ​如何在虚拟环境中使用 <b class='flag-5'>Python</b>,提升你的开发体验~

    透明幻境:玻璃穹顶打造的树莓派透明显示器!

    的VEEBProjects利用光学错觉和玻璃穹顶制作了一个非常酷的透明显示屏。这并不是我们报道的第一个利用“珀尔幻象”效果的RaspberryPi项目。我们最喜欢的例子之
    的头像 发表于 03-25 09:22 509次阅读
    透明幻境:<b class='flag-5'>用</b>玻璃穹顶打造的树莓派透明显示器!

    DLP6500能否Python编程进行开发,是否有API接口?

    本人第一次接触DLP的开发板,想知道DLP6500这款板子能否Python编程进行开发,是否有API接口?
    发表于 02-28 06:58

    有没有什么方案能实现直接matlab或python调用D4100_usb.dll?

    是32位程序而我的电脑是64位的。 由于实验中主要用matlab编程,使用C++程序很不方便,如果能直接matlab或python调用D4100_usb.dll就会好很多。 因此,我想询问
    发表于 02-27 06:59

    deepin 23+树莓派让小车动起来

    deepin 23 +树莓派还有新玩法?     前言 继我们之前发布的树莓派运行 deepin 23 系统教程后,此次我们将深入探索如何借助树莓派实现与硬件的交互,进而精准控制小车的运行
    的头像 发表于 02-12 09:12 1323次阅读
    deepin 23+树莓派让小车动起来

    使用Python实现xgboost教程

    使用Python实现XGBoost模型通常涉及以下几个步骤:数据准备、模型训练、模型评估和模型预测。以下是一个详细的教程,指导你如何在Python中使用XGBoost。 1. 安装XGBoost
    的头像 发表于 01-19 11:21 2215次阅读

    【社区之星】范嘉:当没用的知识多到彼此交联,你就会发现他们价值连城

    ,但是解决不了,请问你有遇到这种情况么?如果有,请问最后你是怎么解决的? 范嘉: 这个问题其实也是一直困扰我们的问题。如果说设备测试,专业设备捕捉信号。那肯定是最好的。但是对于大
    发表于 01-13 11:33

    奥比中光携手极让眼镜实现“一人一镜”

    近日,深圳国际眼镜业博览会隆重举行,极在展览会上正式展出搭载奥比中光3D相机Gemini 210的最新款“魔镜Pro+”。这款“魔镜Pro+”能够采集顾客的面部3D数据,并根据每个人的面部特征进行
    的头像 发表于 12-31 14:10 1556次阅读

    ADS1294和ADS1298有区别啊?

    您好,请教一下您这个ADS1294和ADS1298有区别啊?还有带R的和不带R的有区别啊?我的都是一个手册。顺便再问一下您,ADS1291和ADS1292有
    发表于 12-25 06:31