社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

大数据文摘 • 6 年前 • 911 次点击  

大数据文摘出品

作者:李雷、蒋宝尚


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


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


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



虽然,电影中的皮卡丘是一位贱萌的中年大叔,但是观影过后的文摘菌依然想起了宝可梦世界里二十多年不变的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


志愿者介绍

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

点「在看」的人都变好看了哦
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32879
 
911 次点击