Python动感爱心光波代码

技术

一只有趣的兔子

写在前面

动感光波!本文小编给大家带来Python实现的爱心光波动态效果图,一起来看看吧~(文末可以免费下载代码哦)

picture.image

情人节告白

picture.image

1、星河滚烫,不如你眼眸璀璨;人间烟火,不及你笑颜如花。

2、你的过去,我来不及参与;你的未来,我奉陪到底。

3、你对我一见倾心,我对你一见如故。初遇是你,余生都是你。

4、不求朝朝暮暮,但愿岁岁年年,都能与你共度温馨浪漫的情人节。

完整代码


                    
import turtle as tu
                    
import random as ra
                    

                    
tu.setup(1.0, 1.0)  # 设置画板大小(小数表示比例,整数表示大小)
                    
tu.screensize(1.0, 1.0)  # 设置屏幕大小
                    
tu.bgcolor('black')  # 设置画布背景颜色
                    
tu.title('爱心光波')
                    
t = tu.Pen()  # 设置画笔
                    
t.ht()  # 隐藏画笔
                    
colors = ['pink', 'hotpink', 'deeppink', 'lightpink']  # 爱心的颜色列表,可以设置自己喜欢的颜色噢
                    

                    
# colors = ['skyblue', 'lightblue', 'blue', 'royalblue'] # 蓝色系
                    
class Love():  # 爱心类
                    
    def __init__(self, r):  # 初始化
                    
        self.r = r  # 爱心的半径
                    
        self.x = 0  # 爱心的横坐标
                    
        self.y = 120  # 爱心的纵坐标
                    
        self.color = ra.choice(colors)  # 爱心的颜色
                    
        self.outline = 2  # 爱心的外框大小(可不要)
                    

                    
    def draw(self):  # 画爱心函数,就是用turtle画爱心
                    
        t.pensize(self.outline)
                    
        t.penup()
                    
        t.color(self.color)
                    
        t.goto(self.x, self.y)
                    
        t.pendown()
                    
        # t.begin_fill()
                    
        # t.fillcolor('pink')
                    
        t.setheading(120)
                    
        t.circle(self.r, 195)
                    
        t.fd(self.r * 2.4)
                    
        t.lt(90)
                    
        t.fd(self.r * 2.4)
                    
        t.circle(self.r, 195)
                    
        # t.end_fill()
                    

                    
    def change(self):  # 改变爱心的大小(爱心不断增大)
                    
        if self.r <= 100:
                    
            self.r += 1
                    
        else:
                    
            self.r = 1
                    
            self.x = 0
                    
            self.y = 120
                    
            self.c = ra.choice(colors)
                    

                    

                    
Loves = []  # 爱心列表
                    
for i in range(200):  # 循环增加爱心
                    
    Loves.append(Love(i + 1))
                    
while True:  # 开始画爱心
                    
    tu.tracer(0)
                    
    t.clear()
                    
    for i in range(99):
                    
        Loves[i].draw()
                    
        Loves[i].change()
                    
    tu.update()
                    
tu.mainloop()
                

代码分析

这段代码是用Python的turtle库实现的一个动画程序,它会生成一系列不断变化大小、颜色和位置的心形,并在黑色背景上进行绘制。以下是该代码的详细分析:

  1. 首先导入turtle模块(别名tu)和random模块(别名ra),turtle库是一个图形绘制库,常用于教学编程入门,random库则用来生成随机数。

  2. tu.setup(1.0, 1.0) 设置画布窗口的宽高比为1:1,也就是说窗口将是正方形。

  3. tu.screensize(1.0, 1.0) 虽然通常用于设置屏幕大小(以像素为单位),但在此处由于传入的是比例值,可能不会生效或者与tu.setup()有冲突,实际应用中一般不与setup()同时使用,或者应提供具体的像素尺寸。

  4. tu.bgcolor('black') 将画布背景色设为黑色。

  5. 初始化一个画笔对象t = tu.Pen(),所有后续的绘画操作将通过这个画笔执行。

  6. t.ht() 隐藏画笔,即在移动画笔时不显示轨迹。

  7. 定义了一个颜色列表colors,包含四种不同的粉色系颜色,这些颜色将被用于心形的填充。

  8. 定义了一个名为Love的类,表示一个心形对象,其中:

    • \_\_init\_\_(self, r) 是初始化方法,设置心形的半径、初始坐标、随机选择的颜色及外框大小。

    • draw(self) 方法用于绘制心形,采用特定的算法(两个圆弧和两条直线组合)来画出心形,并设定填充和轮廓颜色。

    • change(self) 方法设计了心形的变化规则:当心形半径小于等于100时增大半径;达到最大半径后,重置心形的位置、颜色以及重新随机半径。

  9. 创建一个空列表Loves,然后通过循环创建200个不同大小的心形实例并添加到列表中。

  10. 进入无限循环,在循环内部:

    • 使用tu.tracer(0) 关闭tracer,提高动画性能,让turtle一次性完成所有的绘图命令后再更新屏幕。

    • 清除当前画布上的内容 (t.clear())。

遍历 Loves列表中的每个心形实例,调用它们的draw()方法进行绘制,并调用change()方法更新其状态。

- 最后调用`tu.update()` 更新屏幕,显示新一帧的画面。

11. tu.mainloop() 开始主循环,等待事件触发。在这个案例中,因为没有显式地设置结束条件,所以程序将在while循环内持续运行,不断绘制并更新心形的状态。

总结起来,这个程序构建了一个动态心形动画,其中心形数量固定为200个,它们不断地按照一定规律改变大小、颜色和位置,营造出一种浪漫且动感的效果。

运行结果

picture.image

情人节系列

picture.image

浪漫的HTML跳动爱心代码

炫酷的Html动态爱心代码

C语言实现跳动的爱心完整代码

C语言满屏飘字表白代码(可修改文案)

Python李峋同款跳动的爱心代码

Java实现一个可以写字的动态爱心

一起用C语言画个爱心吧!

HTML超好看的蓝色爱心

"愿得一人心,白首不分离"

是谁的心啊~

HTML情人节漂浮爱心代码

Python满屏漂浮爱心代码

无限弹窗!满屏表白代码来啦

下载代码

公众号内回复:python031

输入提取码:cqa9

写在后面

我是一只有趣的兔子,感谢你的喜欢!

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生数据库 veDB 核心技术剖析与展望
veDB 是一款分布式数据库,采用了云原生计算存储分离架构。本次演讲将为大家介绍火山引擎这款云原生数据库的核心技术原理,并对未来进行展望。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论