您好,登錄后才能下訂單哦!
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)
????????function(){ //Axitrader返傭 http://www.fx61.com/brokerlist/axitrader.html
????????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()
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。