怎么用python画一个皮卡丘,python绘制皮卡丘
作为童年时代比较受大家欢迎的卡通人物,皮卡丘肯定是榜上有名的。我们在学习了大蟒后,也可以使用相关的代码画出一只可爱的皮卡丘。
进口海龟
defgetPosition(x,y):
turtle.setx(x)
乌龟。塞提(y)
打印(x,y)
classPikachu:
def__init__(self):
self.t=海龟。乌龟()
t=自我
沉思(3)
速度测试(9)
t.ondrag(获取位置)
defnoTrace_goto(self,x,y):
self.t.penup()
self.t.goto(x,y)
self.t.pendown()
defleftEye(self,x,y):
self.noTrace_goto(x,y)
t=自我
塞思(0)
t。填充颜色(# 333333)
t.begin_fill()
t型圈(22)
t.end_fill()
self.noTrace_goto(x,y 10)
t。填充颜色(# 000000)
t.begin_fill()
t圆(10)
t.end_fill()
self.noTrace_goto(x 6,y 22)
t.fillcolor(#ffffff )
t.begin_fill()
t.circle(10)
t.end_fill()
defrightEye(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()
defmouth(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
foriinrange(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
foriinrange(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()
forposinreversed(l1[:20]):
t.goto(pos[0],pos[1]+1.5)
forposinl2[: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)
#红脸颊
defleftCheek(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
foriinrange(120):
if0<=i<30or60<=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)
defrightCheek(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
foriinrange(120):
if0<=i<30or60<=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)
defcolorLeftEar(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()
defcolorRightEar(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()
defbody(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()
defcap(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')
defstart(self):
self.body()
defmain():
print('PaintingthePikachu...')
turtle.screensize(800,600)
turtle.title('Pikachu')
pikachu=Pikachu()
pikachu.start()
turtle.mainloop()
if__name__=='__main__':
main()
以上就是使用python画皮卡丘的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。