如何使用python画皮卡丘?
- 更新时间:2021-07-04 09:06:39
- 编辑:宋清舒
给寻找编程代码教程的朋友们精选了相关的编程文章,网友公英资根据主题投稿了本篇教程内容,涉及到Python相关内容,已被680网友关注,涉猎到的知识点内容可以在下方电子书获得。
参考资料
- Python机器学习算法 PDF 电子书 / 30.1 MB / 赵志勇 推荐度:
- 《Python少儿趣味编程》示例代码和练习解答 配套资源 / 21.2 MB / 李强 李若瑜 推荐度:
- 人人都懂设计模式:从生活中领悟设计模式(Python实现) PDF 电子书 / 31.6 MB / 罗伟富 推荐度:
- 《OpenCV 4计算机视觉:Python语言实现(原书第3版)》配图源码 配套资源 / 266.5 MB / [加]约瑟夫·豪斯(Joseph Howse),[爱]乔·米尼奇诺(Joe Minichino) 推荐度:
- Effective Python:编写高质量Python代码的59个有效方法 PDF 电子书 / 35.5 MB / 布雷特·斯拉特金 推荐度:
正文内容
我们整理一篇关于《如何使用python画皮卡丘?》技术文章,感觉写的不错,扩充了更多相关实例,觉得好就请收藏下。
作为童年时代比较受大家欢迎的卡通人物,皮卡丘肯定是榜上有名的。我们在学习了python后,也可以使用相关的代码画出一只可爱的皮卡丘。
import turtle def getPosition(x, y): turtle.setx(x) turtle.sety(y) print(x, y) class Pikachu: def __init__(self): self.t = turtle.Turtle() t = self.t t.pensize(3) t.speed(9) t.ondrag(getPosition) def noTrace_goto(self, x, y): self.t.penup() self.t.goto(x, y) self.t.pendown() def leftEye(self, x, y): self.noTrace_goto(x, y) t = self.t t.seth(0) t.fillcolor('#333333') t.begin_fill() t.circle(22) t.end_fill() self.noTrace_goto(x, y + 10) t.fillcolor('#000000') t.begin_fill() t.circle(10) t.end_fill() self.noTrace_goto(x + 6, y + 22) t.fillcolor('#ffffff') t.begin_fill() t.circle(10) t.end_fill() def rightEye(self, x, y): self.noTrace_goto(x, y) t = self.t t.seth(0) t.fillcolor('#333333') t.begin_fill() t.circle(22) t.end_fill() self.noTrace_goto(x, y + 10) t.fillcolor('#000000') t.begin_fill() t.circle(10) t.end_fill() self.noTrace_goto(x - 6, y + 22) t.fillcolor('#ffffff') t.begin_fill() t.circle(10) t.end_fill() def mouth(self, x, y): self.noTrace_goto(x, y) t = self.t t.fillcolor('#88141D') t.begin_fill() # 下嘴唇 l1 = [] l2 = [] t.seth(190) a = 0.7 for i in range(28): a += 0.1 t.right(3) t.fd(a) l1.append(t.position()) self.noTrace_goto(x, y) t.seth(10) a = 0.7 for i in range(28): a += 0.1 t.left(3) t.fd(a) l2.append(t.position()) # 上嘴唇 t.seth(10) t.circle(50, 15) t.left(180) t.circle(-50, 15) t.circle(-50, 40) t.seth(233) t.circle(-50, 55) t.left(180) t.circle(50, 12.1) t.end_fill() # 舌头 self.noTrace_goto(17, 54) t.fillcolor('#DD716F') t.begin_fill() t.seth(145) t.circle(40, 86) t.penup() for pos in reversed(l1[:20]): t.goto(pos[0], pos[1] + 1.5) for pos in l2[:20]: t.goto(pos[0], pos[1] + 1.5) t.pendown() t.end_fill() # 鼻子 self.noTrace_goto(-17, 94) t.seth(8) t.fd(4) t.back(8) # 红脸颊 def leftCheek(self, x, y): turtle.tracer(False) t = self.t self.noTrace_goto(x, y) t.seth(300) t.fillcolor('#DD4D28') t.begin_fill() a = 2.3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 t.lt(3) t.fd(a) else: a += 0.05 t.lt(3) t.fd(a) t.end_fill() turtle.tracer(True) def rightCheek(self, x, y): t = self.t turtle.tracer(False) self.noTrace_goto(x, y) t.seth(60) t.fillcolor('#DD4D28') t.begin_fill() a = 2.3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 t.lt(3) t.fd(a) else: a += 0.05 t.lt(3) t.fd(a) t.end_fill() turtle.tracer(True) def colorLeftEar(self, x, y): t = self.t self.noTrace_goto(x, y) t.fillcolor('#000000') t.begin_fill() t.seth(330) t.circle(100, 35) t.seth(219) t.circle(-300, 19) t.seth(110) t.circle(-30, 50) t.circle(-300, 10) t.end_fill() def colorRightEar(self, x, y): t = self.t self.noTrace_goto(x, y) t.fillcolor('#000000') t.begin_fill() t.seth(300) t.circle(-100, 30) t.seth(35) t.circle(300, 15) t.circle(30, 50) t.seth(190) t.circle(300, 17) t.end_fill() def body(self): t = self.t t.fillcolor('#F6D02F') t.begin_fill() # 右脸轮廓 t.penup() t.circle(130, 40) t.pendown() t.circle(100, 105) t.left(180) t.circle(-100, 5) # 右耳朵 t.seth(20) t.circle(300, 30) t.circle(30, 50) t.seth(190) t.circle(300, 36) # 上轮廓 t.seth(150) t.circle(150, 70) # 左耳朵 t.seth(200) t.circle(300, 40) t.circle(30, 50) t.seth(20) t.circle(300, 35) # print(t.pos()) # 左脸轮廓 t.seth(240) t.circle(105, 95) t.left(180) t.circle(-105, 5) # 左手 t.seth(210) t.circle(500, 18) t.seth(200) t.fd(10) t.seth(280) t.fd(7) t.seth(210) t.fd(10) t.seth(300) t.circle(10, 80) t.seth(220) t.fd(10) t.seth(300) t.circle(10, 80) t.seth(240) t.fd(12) t.seth(0) t.fd(13) t.seth(240) t.circle(10, 70) t.seth(10) t.circle(10, 70) t.seth(10) t.circle(300, 18) t.seth(75) t.circle(500, 8) t.left(180) t.circle(-500, 15) t.seth(250) t.circle(100, 65) # 左脚 t.seth(320) t.circle(100, 5) t.left(180) t.circle(-100, 5) t.seth(220) t.circle(200, 20) t.circle(20, 70) t.seth(60) t.circle(-100, 20) t.left(180) t.circle(100, 20) t.seth(300) t.circle(10, 70) t.seth(60) t.circle(-100, 20) t.left(180) t.circle(100, 20) t.seth(10) t.circle(100, 60) # 横向 t.seth(180) t.circle(-100, 10) t.left(180) t.circle(100, 10) t.seth(5) t.circle(100, 10) t.circle(-100, 40) t.circle(100, 35) t.left(180) t.circle(-100, 10) # 右脚 t.seth(290) t.circle(100, 55) t.circle(10, 50) t.seth(120) t.circle(100, 20) t.left(180) t.circle(-100, 20) t.seth(0) t.circle(10, 50) t.seth(110) t.circle(100, 20) t.left(180) t.circle(-100, 20) t.seth(30) t.circle(20, 50) t.seth(100) t.circle(100, 40) # 右侧身体轮廓 t.seth(200) t.circle(-100, 5) t.left(180) t.circle(100, 5) t.left(30) t.circle(100, 75) t.right(15) t.circle(-300, 21) t.left(180) t.circle(300, 3) # 右手 t.seth(43) t.circle(200, 60) t.right(10) t.fd(10) t.circle(5, 160) t.seth(90) t.circle(5, 160) t.seth(90) t.fd(10) t.seth(90) t.circle(5, 180) t.fd(10) t.left(180) t.left(20) t.fd(10) t.circle(5, 170) t.fd(10) t.seth(240) t.circle(50, 30) t.end_fill() self.noTrace_goto(130, 125) t.seth(-20) t.fd(5) t.circle(-5, 160) t.fd(5) # 手指纹 self.noTrace_goto(166, 130) t.seth(-90) t.fd(3) t.circle(-4, 180) t.fd(3) t.seth(-90) t.fd(3) t.circle(-4, 180) t.fd(3) # 尾巴 self.noTrace_goto(168, 134) t.fillcolor('#F6D02F') t.begin_fill() t.seth(40) t.fd(200) t.seth(-80) t.fd(150) t.seth(210) t.fd(150) t.left(90) t.fd(100) t.right(95) t.fd(100) t.left(110) t.fd(70) t.right(110) t.fd(80) t.left(110) t.fd(30) t.right(110) t.fd(32) t.right(106) t.circle(100, 25) t.right(15) t.circle(-300, 2) ############## # print(t.pos()) t.seth(30) t.fd(40) t.left(100) t.fd(70) t.right(100) t.fd(80) t.left(100) t.fd(46) t.seth(66) t.circle(200, 38) t.right(10) t.fd(10) t.end_fill() # 尾巴花纹 t.fillcolor('#923E24') self.noTrace_goto(126.82, -156.84) t.begin_fill() t.seth(30) t.fd(40) t.left(100) t.fd(40) t.pencolor('#923e24') t.seth(-30) t.fd(30) t.left(140) t.fd(20) t.right(150) t.fd(20) t.left(150) t.fd(20) t.right(150) t.fd(20) t.left(130) t.fd(18) t.pencolor('#000000') t.seth(-45) t.fd(67) t.right(110) t.fd(80) t.left(110) t.fd(30) t.right(110) t.fd(32) t.right(106) t.circle(100, 25) t.right(15) t.circle(-300, 2) t.end_fill() # 帽子、眼睛、嘴巴、脸颊 self.cap(-134.07, 147.81) self.mouth(-5, 25) self.leftCheek(-126, 32) self.rightCheek(107, 63) self.colorLeftEar(-250, 100) self.colorRightEar(140, 270) self.leftEye(-85, 90) self.rightEye(50, 110) t.hideturtle() def cap(self, x, y): self.noTrace_goto(x, y) t = self.t t.fillcolor('#CD0000') t.begin_fill() t.seth(200) t.circle(400, 7) t.left(180) t.circle(-400, 30) t.circle(30, 60) t.fd(50) t.circle(30, 45) t.fd(60) t.left(5) t.circle(30, 70) t.right(20) t.circle(200, 70) t.circle(30, 60) t.fd(70) # print(t.pos()) t.right(35) t.fd(50) t.circle(8, 100) t.end_fill() self.noTrace_goto(-168.47, 185.52) t.seth(36) t.circle(-270, 54) t.left(180) t.circle(270, 27) t.circle(-80, 98) t.fillcolor('#444444') t.begin_fill() t.left(180) t.circle(80, 197) t.left(58) t.circle(200, 45) t.end_fill() self.noTrace_goto(-58, 270) t.pencolor('#228B22') t.dot(35) self.noTrace_goto(-30, 280) t.fillcolor('#228B22') t.begin_fill() t.seth(100) t.circle(30, 180) t.seth(190) t.fd(15) t.seth(100) t.circle(-45, 180) t.right(90) t.fd(15) t.end_fill() t.pencolor('#000000') def start(self): self.body() def main(): print('Painting the Pikachu... ') turtle.screensize(800, 600) turtle.title('Pikachu') pikachu = Pikachu() pikachu.start() turtle.mainloop() if __name__ == '__main__': main()
以上就是使用python画皮卡丘的方法,希望对大家有所帮助。
相关教程
-
Python基于identicon库创建类似Github上用的头像功能
这篇文章主要介绍了Python基于identicon库创建类似Github上用的头像功能,结合具体实例形式分析了identicon库操作图形的具体步骤与相关使用技巧,需要的朋友可以参考下
发布时间:2019-08-26
-
详解如何利用Python制作24点小游戏
这篇文章主要为大家详细介绍了如何通过Python制作24点小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2019-07-23