import turtle
import time
# 清屏函数
def clear_all():
turtle.penup()
turtle.goto(0, 0)
turtle.color('white')
turtle.pensize(800)
turtle.pendown()
turtle.setheading(0)
turtle.fd(300)
turtle.bk(600)
# 重定位海龟的位置
def go_to(x, y, state):
turtle.pendown() if state else turtle.penup()
turtle.goto(x, y)
# 画线
# state为真时海龟回到原点,为假时不回到原来的出发点
def draw_line(length, angle, state):
turtle.pensize(1)
turtle.pendown()
turtle.setheading(angle)
turtle.fd(length)
turtle.bk(length) if state else turtle.penup()
turtle.penup()
# 画箭羽
def draw_feather(size):
angle = 30 # 箭的倾角
feather_num = size//6 # 羽毛的数量
feather_length = size // 3 # 羽毛的长度
feather_gap = size//10 # 羽毛的间隔
for i in range(feather_num):
draw_line(feather_gap, angle+180, False) # 箭柄,不折返
draw_line(feather_length, angle + 145, True) # 羽翼,要折返
draw_line(feather_length, angle + 145, False)
draw_line(feather_num*feather_gap, angle, False)
draw_line(feather_length, angle + 145 + 180, False)
for i in range(feather_num):
draw_line(feather_gap, angle+180, False) # 箭柄,不折返
draw_line(feather_length, angle - 145, True) # 羽翼,要折返
draw_line(feather_length, angle - 145, False)
draw_line(feather_num*feather_gap, angle, False)
draw_line(feather_length, angle - 145 + 180, False)
# 画爱心
def draw_heart(size):
turtle.color('red', 'pink')
turtle.pensize(2)
turtle.pendown()
turtle.setheading(150)
turtle.begin_fill()
# turtle.fd(size)
turtle.circle(size * -3.745, 45)
turtle.circle(size * -1.431, 165)
turtle.left(120)
turtle.circle(size * -1.431, 165)
turtle.circle(size * -3.745, 45)
turtle.fd(size)
turtle.end_fill()
# 画箭
def draw_arrow(size):
angle = 30
turtle.color('grey')
draw_feather(size)
turtle.pensize(6)
turtle.setheading(angle)
turtle.pendown()
turtle.fd(size*3)
# 一箭穿心
# 箭的头没有画出来,而是用海龟来代替
def arrow_heart(x, y, size):
go_to(x, y, False)
draw_heart(size*1.15)
turtle.setheading(-150)
turtle.penup()
turtle.fd(size*2.2)
draw_heart(size)
turtle.penup()
turtle.setheading(150)
turtle.fd(size * 2.2)
draw_arrow(size)
# 画出发射爱心的小人
def draw_people(x, y):
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.pensize(2)
turtle.color('black')
turtle.setheading(0)
turtle.circle(60, 360)
turtle.penup()
turtle.setheading(90)
turtle.fd(75)
turtle.setheading(180)
turtle.fd(20)
turtle.pensize(4)
turtle.pendown()
turtle.circle(2, 360)
turtle.setheading(0)
turtle.penup()
turtle.fd(40)
turtle.pensize(4)
turtle.pendown()
turtle.circle(-2, 360)
turtle.penup()
turtle.goto(x, y)
turtle.setheading(-90)
turtle.pendown()
turtle.fd(20)
turtle.setheading(0)
turtle.fd(35)
turtle.setheading(60)
turtle.fd(10)
turtle.penup()
turtle.goto(x, y)
turtle.setheading(-90)
turtle.pendown()
turtle.fd(40)
turtle.setheading(0)
turtle.fd(35)
turtle.setheading(-60)
turtle.fd(10)
turtle.penup()
turtle.goto(x, y)
turtle.setheading(-90)
turtle.pendown()
turtle.fd(60)
turtle.setheading(-135)
turtle.fd(60)
turtle.bk(60)
turtle.setheading(-45)
turtle.fd(30)
turtle.setheading(-135)
turtle.fd(35)
turtle.penup()
# 第一个画面,显示文字
def page0():
turtle.penup()
turtle.goto(-350, 0)
turtle.color('blue')
turtle.write('专属于我们的情人节', font=('宋体', 60, 'normal'))
time.sleep(3)
# 第二个画面,显示发射爱心的小人
def page1():
turtle.speed(10)
draw_people(-250, 20)
turtle.penup()
turtle.goto(-150, -30)
draw_heart(14)
turtle.penup()
turtle.goto(-20, -60)
draw_heart(25)
turtle.penup()
turtle.goto(250, -100)
draw_heart(45)
turtle.hideturtle()
time.sleep(3)
# 最后一个画面,一箭穿心
def page2():
turtle.speed(1)
turtle.penup()
turtle.goto(-350, -350)
turtle.color('blue')
turtle.pendown()
turtle.write('许世成 ❤ 张英慧', font=('wisdom', 60, 'normal'))
turtle.penup()
turtle.goto(0, -180)
draw_heart(10)
arrow_heart(20, -60, 51)
turtle.showturtle()
def main():
turtle.setup(900, 500)
page0()
clear_all()
page1()
clear_all()
page2()
turtle.done()
main()

GJZGRB
- 粉丝: 3165
最新资源
- 使用YOLO v(ONNX)模型在C中使用ML.Net进行对象检测_Use the YOLO v3 (ONNX) mod
- NET的Yolov ONNX模型过程。ML.NET_Yolov7 ONNX model process with NET
- YoloCSharp是Yolo_Darknet的跨平台包装器。净标准。_YoloCSharp is a cross pl
- wx美美美美哒.ipa
- com.gjz.my1.plist
- pytorch yolo赢得opencvsharp_将使用pytorch-yolo3训练好的模型部署到win中,使用op
- 基于ART库的对抗训练与防御实现-在CIFAR-10数据集上训练卷积神经网络模型并应用快速梯度方法和特征压缩技术进行对抗攻击与防御-提高模型鲁棒性和安全性-使用Keras构建CNN.zip
- wx美美美美哒.apk
- Java 课程设计之大作业:飞机大战与连连看
- FULiveDemo-master.zip
- 面部去标识化技术解析
- 基于ECharts实现的公司运营数据可视化表格系统-公司2015至2017年度运营数据统计与分析-通过交互式表格与图表展示企业关键运营指标支持多维度数据钻取与对比分析帮助管理层.zip
- 原料车间各岗位班长岗位职责.doc
- 别墅工程v基他构件计算式.doc
- 教师网络研修总结范文.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


