Python新春烟花盛宴

简介: Python新春烟花盛宴

Python新春烟花盛宴

image.png

环境需求

python3.11.4及以上

PyCharm Community Edition 2023.2.5

pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)

【注】

 

python环境搭建请见:https://want595.blog.csdn.net/article/details/134586653

pyinstaller使用教程见:https://want595.blog.csdn.net/article/details/134106807

新春烟花

image.png

程序分析

这段代码是使用Python的Tkinter库创建的一个简单GUI应用程序,模拟了新春烟花的效果。程序的主要功能是在用户点击画布时,在鼠标点击的位置生成并动态展示烟花效果。

 

代码结构与功能概述:

 

1. 导入所需的库:

  - `tkinter`:用于构建图形用户界面(GUI)的基础库。

  - `random`:用于生成随机数以实现不同颜色和粒子运动轨迹的变化。

 

2. 定义辅助函数:

  - `center_window(window, width, height)`:接受窗口对象、宽度和高度参数,计算窗口在屏幕上的居中坐标,并设置窗口大小和位置。

 

3. 定义一个生成随机颜色的方法 `color()`,返回一个随机RGB值表示的颜色字符串。

 

4. 定义了一个名为`Firework`的类,其包含以下方法:

  - `__init__(self, canvas, x, y)`:初始化烟花对象,包括画布引用、初始坐标、随机颜色以及烟花粒子列表。

  - `create_particles(self)`:为烟花生成一定数量(99个)的随机速度的粒子,每个粒子用椭圆表示,并存储粒子ID及其速度信息。

  - `update(self)`:更新烟花状态,增加粒子半径、减少寿命,并根据粒子速度移动粒子,移除超出画布范围的粒子。

  - `fire(self)`:在画布上绘制出烟花主体,并启动定时器调用`launch`方法开始连续更新烟花状态。

  - `launch(self)`:连续执行`update`方法,当所有粒子消失或烟花寿命结束时从画布上删除烟花。

 

5. 创建主窗口`root`,设置标题和窗口尺寸,并调用`center_window`将其居中显示。

 

6. 在窗口内创建一个黑色背景的画布,并将画布填满整个窗口。

 

7. 定义鼠标点击事件处理函数`on_click(event)`,在鼠标左键点击时,根据点击坐标创建一个`Firework`实例并发射烟花。

 

8. 将鼠标点击事件绑定到画布上。

 

9. 最后运行主循环`root.mainloop()`,持续监听用户交互和GUI事件,直到窗口被关闭。

 

通过这个程序,用户可以在画布上任意位置点击来触发烟花动画,每朵烟花由多个随机颜色和方向的粒子组成,粒子会按照设定的速度在画布上移动,逐渐扩散并最终消失,从而模拟出真实的烟花绽放和消散的效果。

运行结果

image.png

目录
相关文章
|
4月前
|
Python
Python跨年烟花秀
Python跨年烟花秀
124 0
|
监控 Python
手把手教你用 Python 制作一场炫酷烟花秀
本篇文章,带大家用 Python 制作一个炫酷烟花秀,来迎接即将到来的元旦佳节。开始之前先看一下最终效果
手把手教你用 Python 制作一场炫酷烟花秀
|
2月前
|
Python
python烟花绘制,春节祝福
python烟花绘制,春节祝福
25 0
|
7月前
|
前端开发 测试技术 Linux
芯片人的快乐——python+systemverilog用波形祝你新春快乐 |献上祝福语波形生成器|
芯片人的快乐——python+systemverilog用波形祝你新春快乐 |献上祝福语波形生成器|
|
11月前
|
Python
Python烟花(有源码)
Python烟花(有源码)
144 0
|
8月前
|
Python Windows
用 Python 实现一场环保无污染的烟花秀
用 Python 实现一场环保无污染的烟花秀
98 1
用 Python 实现一场环保无污染的烟花秀
|
10月前
|
Python
【兔年烟花】旖旎风景——浪漫烟花(Python实现)
【兔年烟花】旖旎风景——浪漫烟花(Python实现)
|
12月前
|
Python
Python烟花秀
Python跨年烟花表演。
109 0
Python烟花秀
|
Python
【新年快乐】禁止燃放烟花爆竹&那就用Python画场烟花秀吧
新年即将来临,在这个举国欢庆的日子里,怎么能少的了灿烂又热烈的烟花秀呢!既然不让我们在线下燃放烟花爆竹,那就让我们一起来画一场烟花秀,送给你最在意的那个人叭~
121 0
【新年快乐】禁止燃放烟花爆竹&那就用Python画场烟花秀吧
|
Python
Python放个烟花
名为 Python烟花
168 0