今天三八妇女节,快用满屏的爱心对ta表达你的爱意吧

养成习惯先赞后看

效果图

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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值