Ai
2 Star 3 Fork 1

GinmHam/python练手

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
皮卡丘.py 11.53 KB
一键复制 编辑 原始数据 按行查看 历史
GinmHam 提交于 2019-11-16 09:23 +08:00 . python小程序
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
#!/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 ()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/script_child/python_practice.git
git@gitee.com:script_child/python_practice.git
script_child
python_practice
python练手
master

搜索帮助