import turtle as t
import time
# 由于会重复用到多次以下操作,故写成函数
def hua(a, b, c, d):
t.goto(a, b)
t.down()
t.goto(c, d)
t.up()
def heng(a, b, c):
hua(a, b, c, b)
def shu(a, b, c):
hua(a, b, a, c)
# 设置画布大小参数(宽,高,)
t.screensize(1200, 800)
# 设置画笔的速度
t.speed(5)
# 设置画笔的大小
t.pensize(4)
# 画框
t.up()
time.sleep(3) # 设置五秒钟的暂停
heng(-500, 100, 500)
heng(-500, -100, 500)
for i in (-500, -300, -100, 100, 300, 500):
shu(-i, 100, -100)
# 1.武
# 短横
def dian1(param, param1, param2, param3):
pass
dian1(-20, 50, -20, 10)
# 长横
def dian2(param, param1, param2, param3):
pass
dian2(-20, 50, -20, 10)
# 竖
shu(-430, 20, -55)
# 短横
heng(-430, -10, -400)
# 竖
shu(-400, -20, -50)
# 提
hua(-400, -50, -420, -10)
# 斜勾
t.goto(-300, 20)
t.down()
t.setheading(90) # 将笔旋转90度
t.circle(-280, -38)
t.right(45) # 将笔向右转45度
t.forward(20) # 将笔向前画20个单位
t.up()
# 点
hua(-365, 80, -345, 60)
# 2.汉
# 点
hua(-200, 50, -250, 40)
# 点
hua(-205, 10, -220, 0)
# 提
hua(-245, -70, -205, -30)
# 横撇
heng(-80, 35, 10)
t.down()
t.setheading(90) # 将笔旋转90度
t.circle(280, -25) # 撇
t.left(90)
t.forward(30)
t.up()
# 竖撇
t.goto(-40, 90)
t.down()
t.setheading(90) # 将笔旋转90度
t.circle(280, -35) # 撇
t.up()
# 竖
t.goto(20, 35)
shu(15, 35, -50)
# 横折
t.goto(20, 35)
heng(20, 35, 90)
shu(90, 35, -50)
# 横
t.goto(0, 0)
t.home()
t.goto(20, -50)
heng(20, -50, 90)
# 3.加
# 横折钩
heng(-80, 35, 10)
t.down()
t.setheading(90) # 将笔旋转90度
t.circle(280, -25) # 撇
t.left(90)
t.forward(30)
t.up()
# 竖撇
t.goto(-40, 90)
t.down()
t.setheading(90) # 将笔旋转90度
t.circle(280, -35) # 撇
t.up()
# 竖
t.goto(20, 35)
shu(15, 35, -50)
# 横折
t.goto(20, 35)
heng(20, 35, 90)
shu(90, 35, -50)
# 横
t.goto(0, 0)
t.home()
t.goto(20, -50)
heng(20, -50, 90)
# 4.油
# 点
hua(120, 70, 150, 40)
# 点
hua(115, 10, 150, 0)
# 提
hua(115, -70, 155, -30)
# 竖
shu(160, 20, -80)
# 横折
heng(160, 20, 280)
shu(280, 20, -80)
# 横
heng(160, -30, 280)
# 竖
shu(220, 75, -80)
# 横
heng(160, -80, 280)
# 5.表情-加油
# 头
t.goto(400, -100)
t.down()
t.circle(100, 360)
t.up()
# 眉毛
t.pensize(6)
hua(355, 35, 375, 30)
hua(445, 35, 425, 30)
t.pensize(3)
# 眼睛
t.goto(360, 0)
t.down()
a = 0.25
for i in range(120): #
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.02
t.lt(3) # 向左转3度
t.fd(a) # 向前走a的步长
else:
a = a - 0.02
t.lt(3)
t.fd(a)
t.up()
t.goto(440, 0)
t.down()
a = 0.25
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.02
t.lt(3) # 向左转3度
t.fd(a) # 向前走a的步长
else:
a = a - 0.02
t.lt(3)
t.fd(a)
t.up()
# 头巾
t.pencolor('red')
t.pensize(15)
heng(328, 70, 470)
for i in range(10): # 画头巾,用把笔变宽的方法产生头巾逐渐变宽的感觉
t.pensize(10 + i)
hua(470 + i, 70 + i, 471 + i, 71 + i)
# 口罩
t.pencolor('black')
t.pensize(3)
t.fillcolor('blue')
t.begin_fill()
shu(440, -10, -60)
shu(360, -10, -60)
heng(360, -60, 440)
heng(360, -10, 440)
t.end_fill()
# 口罩绳
t.pensize(3)
t.fillcolor('black')
hua(300, 0, 360, -25)
hua(320, -60, 360, -45)
hua(500, 0, 440, -25)
# 手势,不是很好画手势,因此取巧用了很粗的笔,画了两条短线来代替手
t.pensize(30)
t.pencolor('brown')
shu(470, -50, -80)
t.pensize(50)
heng(460, -25, 480)
# 结束
t.done()