import turtle
def getPosition(x, y):
[Link](x)
[Link](y)
print(x, y)
class Pikachu:
def __init__(self):
self.t = [Link]()
t = self.t
[Link](3)
[Link](9)
[Link](getPosition)
def noTrace_goto(self, x, y):
[Link]()
[Link](x, y)
[Link]()
def leftEye(self, x, y):
self.noTrace_goto(x, y)
t = self.t
[Link](0)
[Link]('#333333')
t.begin_fill()
[Link](22)
t.end_fill()
self.noTrace_goto(x, y + 10)
[Link]('#000000')
t.begin_fill()
[Link](10)
t.end_fill()
self.noTrace_goto(x + 6, y + 22)
[Link]('#ffffff')
t.begin_fill()
[Link](10)
t.end_fill()
def rightEye(self, x, y):
self.noTrace_goto(x, y)
t = self.t
[Link](0)
[Link]('#333333')
t.begin_fill()
[Link](22)
t.end_fill()
self.noTrace_goto(x, y + 10)
[Link]('#000000')
t.begin_fill()
[Link](10)
t.end_fill()
self.noTrace_goto(x - 6, y + 22)
[Link]('#ffffff')
t.begin_fill()
[Link](10)
t.end_fill()
def mouth(self, x, y):
self.noTrace_goto(x, y)
t = self.t
[Link]('#88141D')
t.begin_fill()
# Lower Lip
l1 = []
l2 = []
[Link](190)
a = 0.7
for i in range(28):
a += 0.1
[Link](3)
[Link](a)
[Link]([Link]())
self.noTrace_goto(x, y)
[Link](10)
a = 0.7
for i in range(28):
a += 0.1
[Link](3)
[Link](a)
[Link]([Link]())
# Upper Lip
[Link](10)
[Link](50, 15)
[Link](180)
[Link](-50, 15)
[Link](-50, 40)
[Link](233)
[Link](-50, 55)
[Link](180)
[Link](50, 12.1)
t.end_fill()
# Tongue
self.noTrace_goto(17, 54)
[Link]('#DD716F')
t.begin_fill()
[Link](145)
[Link](40, 86)
[Link]()
#for pos in reversed(l1[:20]):
# [Link](pos[0], pos[1] + 1.5)
for pos in l2[:20]:
[Link](pos[0], pos[1] + 1.5)
[Link]()
t.end_fill()
# Nose
self.noTrace_goto(-17, 94)
[Link](8)
[Link](4)
[Link](8)
# Red Cheeks
def leftCheek(self, x, y):
[Link](False)
t = self.t
self.noTrace_goto(x, y)
[Link](300)
[Link]('#DD4D28')
t.begin_fill()
a = 2.3
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a -= 0.05
[Link](3)
[Link](a)
else:
a += 0.05
[Link](3)
[Link](a)
t.end_fill()
[Link](True)
def rightCheek(self, x, y):
t = self.t
[Link](False)
self.noTrace_goto(x, y)
[Link](60)
[Link]('#DD4D28')
t.begin_fill()
a = 2.3
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a -= 0.05
[Link](3)
[Link](a)
else:
a += 0.05
[Link](3)
[Link](a)
t.end_fill()
[Link](True)
def colorLeftEar(self, x, y):
t = self.t
self.noTrace_goto(x, y)
[Link]('#000000')
t.begin_fill()
[Link](330)
[Link](100, 35)
[Link](219)
[Link](-300, 19)
[Link](110)
[Link](-30, 50)
[Link](-300, 10)
t.end_fill()
def colorRightEar(self, x, y):
t = self.t
self.noTrace_goto(x, y)
[Link]('#000000')
t.begin_fill()
[Link](300)
[Link](-100, 30)
[Link](35)
[Link](300, 15)
[Link](30, 50)
[Link](190)
[Link](300, 17)
t.end_fill()
def body(self):
t = self.t
[Link]('#F6D02F')
t.begin_fill()
# Right face contour
[Link]()
[Link](130, 40)
[Link]()
[Link](100, 105)
[Link](180)
[Link](-100, 5)
# Right ear
[Link](20)
[Link](300, 30)
[Link](30, 50)
[Link](190)
[Link](300, 36)
# Upper profile
[Link](150)
[Link](150, 70)
# Left ear
[Link](200)
[Link](300, 40)
[Link](30, 50)
[Link](20)
[Link](300, 35)
#print([Link]())
# Left face contour
[Link](240)
[Link](105, 95)
[Link](180)
[Link](-105, 5)
# Left hand
[Link](210)
[Link](500, 18)
[Link](200)
[Link](10)
[Link](280)
[Link](7)
[Link](210)
[Link](10)
[Link](300)
[Link](10, 80)
[Link](220)
[Link](10)
[Link](300)
[Link](10, 80)
[Link](240)
[Link](12)
[Link](0)
[Link](13)
[Link](240)
[Link](10, 70)
[Link](10)
[Link](10, 70)
[Link](10)
[Link](300, 18)
[Link](75)
[Link](500, 8)
[Link](180)
[Link](-500, 15)
[Link](250)
[Link](100, 65)
# Left foot
[Link](320)
[Link](100, 5)
[Link](180)
[Link](-100, 5)
[Link](220)
[Link](200, 20)
[Link](20, 70)
[Link](60)
[Link](-100, 20)
[Link](180)
[Link](100, 20)
[Link](300)
[Link](10, 70)
[Link](60)
[Link](-100, 20)
[Link](180)
[Link](100, 20)
[Link](10)
[Link](100, 60)
# Horizontal
[Link](180)
[Link](-100, 10)
[Link](180)
[Link](100, 10)
[Link](5)
[Link](100, 10)
[Link](-100, 40)
[Link](100, 35)
[Link](180)
[Link](-100, 10)
# Right foot
[Link](290)
[Link](100, 55)
[Link](10, 50)
[Link](120)
[Link](100, 20)
[Link](180)
[Link](-100, 20)
[Link](0)
[Link](10, 50)
[Link](110)
[Link](100, 20)
[Link](180)
[Link](-100, 20)
[Link](30)
[Link](20, 50)
[Link](100)
[Link](100, 40)
# Right body contour
[Link](200)
[Link](-100, 5)
[Link](180)
[Link](100, 5)
[Link](30)
[Link](100, 75)
[Link](15)
[Link](-300, 21)
[Link](180)
[Link](300, 3)
# Right hand
[Link](43)
[Link](200, 60)
[Link](10)
[Link](10)
[Link](5, 160)
[Link](90)
[Link](5, 160)
[Link](90)
[Link](10)
[Link](90)
[Link](5, 180)
[Link](10)
[Link](180)
[Link](20)
[Link](10)
[Link](5, 170)
[Link](10)
[Link](240)
[Link](50, 30)
t.end_fill()
self.noTrace_goto(130, 125)
[Link](-20)
[Link](5)
[Link](-5, 160)
[Link](5)
# Fingers
self.noTrace_goto(166, 130)
[Link](-90)
[Link](3)
[Link](-4, 180)
[Link](3)
[Link](-90)
[Link](3)
[Link](-4, 180)
[Link](3)
# Tail
self.noTrace_goto(168, 134)
[Link]('#F6D02F')
t.begin_fill()
[Link](40)
[Link](200)
[Link](-80)
[Link](150)
[Link](210)
[Link](150)
[Link](90)
[Link](100)
[Link](95)
[Link](100)
[Link](110)
[Link](70)
[Link](110)
[Link](80)
[Link](110)
[Link](30)
[Link](110)
[Link](32)
[Link](106)
[Link](100, 25)
[Link](15)
[Link](-300, 2)
#print([Link]())
[Link](30)
[Link](40)
[Link](100)
[Link](70)
[Link](100)
[Link](80)
[Link](100)
[Link](46)
[Link](66)
[Link](200, 38)
[Link](10)
[Link](10)
t.end_fill()
# Tail Pattern
[Link]('#923E24')
self.noTrace_goto(126.82, -156.84)
t.begin_fill()
[Link](30)
[Link](40)
[Link](100)
[Link](40)
[Link]('#923e24')
[Link](-30)
[Link](30)
[Link](140)
[Link](20)
[Link](150)
[Link](20)
[Link](150)
[Link](20)
[Link](150)
[Link](20)
[Link](130)
[Link](18)
[Link]('#000000')
[Link](-45)
[Link](67)
[Link](110)
[Link](80)
[Link](110)
[Link](30)
[Link](110)
[Link](32)
[Link](106)
[Link](100, 25)
[Link](15)
[Link](-300, 2)
t.end_fill()
# Hat, Eye, Mouth, Cheek
[Link](-134.07, 147.81)
[Link](-5, 25)
[Link](-126, 32)
[Link](107, 63)
[Link](-250, 100)
[Link](140, 270)
[Link](-85, 90)
[Link](50, 110)
[Link]()
def cap(self, x, y):
self.noTrace_goto(x, y)
t = self.t
[Link]('#CD0000')
t.begin_fill()
[Link](200)
[Link](400, 7)
[Link](180)
[Link](-400, 30)
[Link](30, 60)
[Link](50)
[Link](30, 45)
[Link](60)
[Link](5)
[Link](30, 70)
[Link](20)
[Link](200, 70)
[Link](30, 60)
[Link](70)
#print([Link]())
[Link](35)
[Link](50)
[Link](8, 100)
t.end_fill()
self.noTrace_goto(-168.47, 185.52)
[Link](36)
[Link](-270, 54)
[Link](180)
[Link](270, 27)
[Link](-80, 98)
[Link]('#444444')
t.begin_fill()
[Link](180)
[Link](80, 197)
[Link](58)
[Link](200, 45)
t.end_fill()
self.noTrace_goto(-58, 270)
[Link]('#228B22')
[Link](35)
self.noTrace_goto(-30, 280)
[Link]('#228B22')
t.begin_fill()
[Link](100)
[Link](30, 180)
[Link](190)
[Link](15)
[Link](100)
[Link](-45, 180)
[Link](90)
[Link](15)
t.end_fill()
[Link]('#000000')
def start(self):
[Link]()
def main():
print('Painting the Pikachu... ')
wn = [Link]()
[Link](width=600, height=800)
pikachu = Pikachu()
[Link]()
[Link]()
if __name__ == '__main__':
main()