前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实现童年宝可梦,教你用Python画一只属于自己的皮卡丘

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

作者头像
大数据文摘
发布2019-05-16 11:33:14
2.5K2
发布2019-05-16 11:33:14
举报
文章被收录于专栏:大数据文摘

大数据文摘出品

作者:李雷、蒋宝尚

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

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

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

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

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

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

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

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

先看下效果☟

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

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

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

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

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

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

部分代码示例:

代码语言:javascript
复制
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.pos
t.seth(-140)
t.fd(36)
t.end_fill()
t.seth(39)

# 右尾和h1
t.fd(72)

# 右尾和v1
t.seth(125)
t.fd(48)

# 右尾和h2
t.seth(40)
t.fd(53)

# 右尾和v2
t.seth(88)
t.fd(45)

# 右尾和h3
t.seth(35)
t.fd(105)
# 右尾和v3
t.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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档