700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用Python的turtle模块绘制爱心图案

使用Python的turtle模块绘制爱心图案

时间:2020-06-22 02:17:32

相关推荐

使用Python的turtle模块绘制爱心图案

使用python小海龟实现爱心图案的绘制,代码如下:

import turtleimport 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 = 30turtle.color('black')draw_feather(size)turtle.pensize(4)turtle.setheading(angle)turtle.pendown()turtle.fd(size*2)# 一箭穿心# 箭的头没有画出来,而是用海龟来代替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('black')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(-200, -200)turtle.color('blue')turtle.pendown()turtle.write('ZBT CJH', font=('wisdom', 50, '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()

运行截图如下图所示,其中的姓名缩写可以自行修改。

创作不易,如有错误,欢迎指导改正!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。