#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019-01-20 22:23
# @Author : Apull
# @File : 佩奇.py
from turtle import *
def nose(x, y): # 鼻子
penup() # 提起笔
goto(x, y) # 定位
pendown() # 落笔,开始画
setheading(-30) # 将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)
begin_fill() # 准备开始填充图形
a = 0.4
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
left(3) # 向左转3度
forward(a) # 向前走a的步长
else:
a = a - 0.08
left(3)
forward(a)
end_fill() # 填充完成
penup()
setheading(90)
forward(25)
setheading(0)
forward(10)
pendown()
pencolor(255, 155, 192) # 画笔颜色
setheading(10)
begin_fill()
circle(5)
color(160, 82, 45) # 返回或设置pencolor和fillcolor
end_fill()
penup()
setheading(0)
forward(20)
pendown()
pencolor(255, 155, 192)
setheading(10)
begin_fill()
circle(5)
color(160, 82, 45)
end_fill()
def head(x, y): # 头
color((255, 155, 192), "pink")
penup()
goto(x, y)
setheading(0)
pendown()
begin_fill()
setheading(180)
circle(300, -30)
circle(100, -60)
circle(80, -100)
circle(150, -20)
circle(60, -95)
setheading(161)
circle(-300, 15)
penup()
goto(-100, 100)
pendown()
setheading(-30)
a = 0.4
for i in range(60):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
lt(3) # 向左转3度
fd(a) # 向前走a的步长
else:
a = a - 0.08
lt(3)
fd(a)
end_fill()
def ears(x, y): # 耳朵
color((255, 155, 192), "pink")
penup()
goto(x, y)
pendown()
begin_fill()
setheading(100)
circle(-50, 50)
circle(-10, 120)
circle(-50, 54)
end_fill()
penup()
setheading(90)
forward(-12)
setheading(0)
forward(30)
pendown()
begin_fill()
setheading(100)
circle(-50, 50)
circle(-10, 120)
circle(-50, 56)
end_fill()
def eye(x, y): # 单眼
penup()
goto(x, y)
pendown()
pencolor((255, 155, 192))
begin_fill()
setheading(0)
fillcolor((255, 255, 255))
circle(15)
end_fill()
penup()
goto(x-5, y + 12)
pendown()
begin_fill()
setheading(0)
color((0, 0, 0))
circle(3)
end_fill()
def eyes(x, y): # 眼睛 -20, 120
eye(x, y) # 右眼
eye(x + 40, y - 15) # 左眼
def cheek(x, y): # 腮
color((255, 155, 192))
penup()
goto(x, y)
pendown()
setheading(0)
begin_fill()
circle(30)
end_fill()
def mouth(x, y): # 嘴
color(239, 69, 19)
penup()
goto(x, y)
pendown()
setheading(-80)
circle(30, 40)
circle(40, 80)
def body(x, y): # 身体 -20, -20
pencolor("red")
fillcolor(255, 100, 100)
penup()
goto(x, y)
pendown()
begin_fill()
setheading(225)
circle(300, 45)
setheading(0)
fd(300)
setheading(90)
circle(300, 45)
pencolor((255, 155, 192))
setheading(220)
circle(-93, 80)
end_fill()
def arm(x, y): #手臂 -50, -50
pu()
goto(x, y)
pencolor((255, 155, 192))
pd()
setheading(200)
circle(400, 20)
pu()
goto(x - 105, y - 55)
pd()
setheading(155)
circle(80, 15)
pu()
goto(x - 105, y - 55)
pd()
setheading(270)
circle(-80, 15)
pu()
goto(x + 185, y)
pencolor((255, 155, 192))
pd()
setheading(-10)
circle(-400, 20)
pu()
goto(x + 295, x - 35)
pd()
setheading(20)
circle(-80, 15)
pu()
goto(x + 295, x - 35)
pd()
setheading(270)
circle(-80, 15)
def leg(x, y): # 腿
pu()
goto(x, y)
pd()
pencolor(242, 126, 126)
pensize(12)
setheading(270)
fd(50)
pencolor(0, 0, 0)
pensize(20)
setheading(180)
fd(30)
def legs(x, y): # 腿 0, -239
leg(x, y)
leg(x+100, y)
def tail(x, y): #尾巴 194, -200
pu()
goto(x, y)
pd()
pencolor((255, 155, 192))
pensize(4)
setheading(0)
circle(80, 15)
circle(10)
circle(100, 20)
def setting(): # 参数设置
pensize(4)
hideturtle() # 使乌龟无形(隐藏)
colormode(255) # 将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内
color((255, 155, 192), "pink")
setup(840, 800)
speed(10)
def main():
setting() # 画布、画笔设置
nose(-100, 100) # 鼻子
head(-69, 167) # 头
ears(0, 160) # 耳朵
eyes(-20, 120) # 眼睛
cheek(80, 10) # 腮
mouth(-20, 30) # 嘴
body(-20, -20) # 身体
arm(-50, -50) #手臂
tail(194, -200) # 尾巴
legs(0, -239) # 腿
done()
if __name__ == '__main__':
main()