代码拉取完成,页面将自动刷新
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @File: turtle-pk.py
# Author: Chen jun
# @Time: 2018/3/11 01:05
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 ('')
turtle.write ('by Scriptchild', font=("Bradley Hand ITC", 100, "bold"))
pikachu = Pikachu ()
pikachu.start ()
turtle.mainloop ()
if __name__ == '__main__':
main ()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。