实现童年宝可梦,教你用Python画一只属于自己的皮卡丘

2019 年 5 月 12 日 大数据文摘

大数据文摘出品

作者:李雷、蒋宝尚


还记得小时候疯狂收集和交换神奇宝贝卡片的经历吗?


还记得和小伙伴拿着精灵球,一起召唤小精灵的中二模样吗?


最近上映的《大侦探皮卡丘》,是否会让你秒回童年,进入那个充满神奇宝贝的世界,和小智一起踏上成为宝可梦大师的旅程呢?



虽然,电影中的皮卡丘是一位贱萌的中年大叔,但是观影过后的文摘菌依然想起了宝可梦世界里二十多年不变的C位明星小可爱。



皮卡丘脸颊两边有着小小的电力袋,因此他独有的能力就是可以放电。在动画片中,小智的皮卡丘性格十分害羞,稍有不满就乱放电电人。


小时候也想拥有一只会放电的皮卡丘,长大后渐渐明白,这种高度智能会放电的“动物”只存在于梦中。


不怕,不怕,虽然现实中没有,但是我们可以画一只哟~素描什么的都弱爆了,我们来用Python画一只。


经过一整天的苦战,从未接触过turtle库的文摘菌实现了从0到1,成就感满满。


先看下效果☟


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


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


turtle的绘图方式非常简单直观,想象有一只尾巴上蘸着颜料的小海龟在电脑屏幕上爬行,随着它的移动就能画出线条来。


使用海龟作图,我们不仅能够只用几行代码就创建出令人印象深刻的视觉效果,而且还可以跟随海龟看看每行代码如何影响到它的移动。这能够帮助我们理解代码的逻辑。所以海龟作图也常被用作新手学习 Python 的一种方式。更丰富详细的功能及知识可以参考官方文档:


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


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


部分代码示例:


import turtle as t
def infoPrt(): print('coordinate: ' + str(t.pos())) print('angle: ' + str(t.heading()))
t.pensize(3)t.hideturtle()t.colormode(255)t.color("black")t.setup(700, 650)t.speed(10)t.st()#t.dot()t.pu()#t.goto(-150,100)t.goto(-210,86)t.pd()infoPrt()
# 头print('头')t.seth(85)t.circle(-100,50)#t.seth(78)#t.circle(-100,25)infoPrt()
t.seth(25)t.circle(-170,50)infoPrt()
# 右耳print('右耳')t.seth(40)#t.circle(-250,52)t.circle(-250,30)infoPrt()# 右耳尖t.begin_fill()# 左t.circle(-250,22)#t.fillcolor("pink")# 右t.seth(227)t.circle(-270, 15)
prePos = t.pos()infoPrt()# 尾巴t.pu()t.setpos(p_tail)t.pd()
t.begin_fill()t.seth(50)t.fd(25)t.seth(-50)t.fd(30)p_tail1=t.post.seth(-140)t.fd(36)t.end_fill()t.seth(39)
# 右尾和h1t.fd(72)
# 右尾和v1t.seth(125)t.fd(48)
# 右尾和h2t.seth(40)t.fd(53)
# 右尾和v2t.seth(88)t.fd(45)
# 右尾和h3t.seth(35)t.fd(105)# 右尾和v3t.seth(105)t.circle(850, 8)#t.fd(105)t.seth(215)#t.fd(125)t.circle(850, 11)t.seth(280)t.fd(110)t.seth(220)t.fd(50)t.seth(309)t.fd(56)


完整代码需要360行,为了限于篇幅,只放了一部分代码,需要完整源码的盆友,可关注大数据文摘,回复“皮卡丘”可获得。


使用turtle画图,思路其实很简单,就是通过trutle模块实现基本的圆,椭圆,曲线等,难点在于如何定位每个部位的位置。


对于初学者,文摘菌建议先入手比较简单的项目,比如☟


同样此代码,大数据文摘后台回复“皮卡丘”可获得完整版。


这个皮卡丘,只给出了脸部绘画,相比全身画像,需要考虑的构件相对少一些,适合新手入门。


注:第二个项目代码参考网络资料,链接下文给出,感谢丁彦军对具体代码做了修改。


https://blog.csdn.net/hl_zmfh/article/details/83215693



实习/全职编辑记者招聘ing

加入我们,亲身体验一家专业科技媒体采写的每个细节,在最有前景的行业,和一群遍布全球最优秀的人一起成长。坐标北京·清华东门,在大数据文摘主页对话页回复“招聘”了解详情。简历请直接发送至zz@bigdatadigest.cn


志愿者介绍

后台回复志愿者”加入我们

点「在看」的人都变好看了哦
登录查看更多
0

相关内容

Python是一种面向对象的解释型计算机程序设计语言,在设计中注重代码的可读性,同时也是一种功能强大的通用型语言。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
10行代码实现目标检测,请收下这份教程
极市平台
4+阅读 · 2018年6月27日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
CNN图像风格迁移的原理及TensorFlow实现
数据挖掘入门与实战
5+阅读 · 2018年4月18日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
细数10个隐藏在Python中的彩蛋
七月在线实验室
4+阅读 · 2018年1月16日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
Interpretable CNNs for Object Classification
Arxiv
20+阅读 · 2020年3月12日
Embedding Logical Queries on Knowledge Graphs
Arxiv
3+阅读 · 2019年2月19日
Structure Aware SLAM using Quadrics and Planes
Arxiv
4+阅读 · 2018年8月13日
Neural Arithmetic Logic Units
Arxiv
5+阅读 · 2018年8月1日
Arxiv
6+阅读 · 2018年1月14日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
相关资讯
10行代码实现目标检测,请收下这份教程
极市平台
4+阅读 · 2018年6月27日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
CNN图像风格迁移的原理及TensorFlow实现
数据挖掘入门与实战
5+阅读 · 2018年4月18日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
细数10个隐藏在Python中的彩蛋
七月在线实验室
4+阅读 · 2018年1月16日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
相关论文
Top
微信扫码咨询专知VIP会员