养成习惯先赞后看
效果图
1.当你运行这段代码时,首先会创建一个屏幕大小为 1280x720 的画布,并初始化一个乌龟对象 t。接着定义了颜色列表以及爱心的类 Love。Love 类包含了初始化爱心对象的方法和移动、绘制爱心的方法。
2.然后,创建了一个包含多个 Love 对象的列表 love,并将画布背景颜色设置为黑色。接下来进入一个无限循环,每次循环中都清除之前的绘图,并更新每个爱心的位置并重新绘制,从而实现动态效果。
3.在循环中使用了 turtle.tracer(0) 来关闭绘图动画,以提高绘图速度,然后在绘制完成后再次开启动画以显示最终效果。整个过程展示了如何使用 Turtle 模块创建简单的动画效果,让用户可以欣赏美丽的爱心图案。
全部代码
import turtle
import random
import math
# 初始化
turtle.setup(1280, 720)
t = turtle.Pen()
t.ht()
# 颜色
colors = []
t_list = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"]
for i in t_list:
t_str = "#ff00"
for j in t_list:
colors.append(t_str+i+j)
class Love():
def __init__(self):
# 定义变量
self.r = random.randint(4, 10)
self.x = random.randint(-900, 700)
self.y = random.randint(-400, 400)
self.i = random.randint(0, 10)
self.color = random.choice(colors)
self.speed = random.randint(1, 8)
def move(self):
# 通过y坐标来控制爱心
if self.y <= 500:
self.y += 2.5*self.speed
self.x = self.x + 1.5*math.sin(self.i)*math.sqrt(self.i)*self.speed
self.i = self.i + 0.1
else:
self.y = -700
self.r = random.randint(5, 20)
self.x = random.randint(-900, 700)
self.i = 0
self.color = random.choice(colors)
self.speed = random.randint(1, 8)
def draw(self):
# 绘制爱心
t.pensize(self.r/2)
t.penup()
t.color(self.color, self.color)
t.goto(self.x, self.y)
t.pendown()
# 设置角度
t.setheading(60)
t.circle(self.r, 255)
t.fd(2.4*self.r)
t.left(90)
t.fd(2.4*self.r)
t.circle(self.r, 255)
love = []
for i in range(100):
love.append(Love())
turtle.bgcolor("#000000")
while 1:
turtle.tracer(0)
t.clear()
for i in range(80):
love[i].move()
love[i].draw()
turtle.tracer(1)