我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python烟花秀

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python烟花秀

e51d0386db8742e7ac13b70329d4be95.png

系列文章

序号文章目录直达链接
1浪漫520表白代码https://want595.blog.csdn.net/article/details/130666881
2满屏表白代码https://want595.blog.csdn.net/article/details/129794518
3跳动的爱心https://want595.blog.csdn.net/article/details/129503123
4漂浮爱心https://want595.blog.csdn.net/article/details/128808630
5爱心光波https://want595.blog.csdn.net/article/details/132311588
6流星雨https://want595.blog.csdn.net/article/details/129395465
7满天星https://want595.blog.csdn.net/article/details/129572082
8烟花秀https://want595.blog.csdn.net/article/details/128746664
9圣诞树https://want595.blog.csdn.net/article/details/128213770
10雪花代码https://want595.blog.csdn.net/article/details/129038108
11模拟星空https://want595.blog.csdn.net/article/details/129948882
12生日蛋糕https://want595.blog.csdn.net/article/details/129694998
13樱花树https://want595.blog.csdn.net/article/details/130350743
14五彩气球https://want595.blog.csdn.net/article/details/130950744
15七彩花朵https://want595.blog.csdn.net/article/details/130897838
16恶搞代码https://want595.blog.csdn.net/article/details/131274862

目录

系列文章

前言

烟花的粒子类

烟花秀的实现


 

前言

Python跨年烟花表演,完整代码文末公众号免费获取哦

烟花的粒子类

class particle:     #烟花的粒子类
    def __init__(self,canvas,num,sums,x,y,x_speed,y_speed,explosion_speed,color,size,max_life):
        self.canvas=canvas    #画布
        self.num=num          #粒子的序号
        self.sums=sums        #粒子的个数
        self.x=x              #粒子的横向坐标
        self.y=y              #粒子的纵向坐标
        self.x_speed=x_speed    #粒子在横向的移动速度
        self.y_speed=y_speed    #粒子在纵向的移动速度
        self.initial_speed=explosion_speed    #粒子的初始速度
        self.color=color       #粒子的颜色
        self.life=0            #粒子当前存活的时间
        self.max_life=max_life   #粒子最大的存活时间
        self.oval=self.canvas.create_oval(x-size,y-size,x+size,y+size,fill=self.color)   #粒子的范围(烟花的大小)
    def expand(self):    #判断粒子是否还在爆炸
        if self.life<=1.5:    #粒子是否到达最大爆炸时间
            return 1
        else:
            return 0
    def alive(self):     #判断粒子是否存活
        if self.life<=self.max_life:     #粒子是否到达最大存活时间
            return 1
        else:
            return 0
    def new(self,dt):    #更新当前烟花的粒子位置
        self.life=self.life+dt   #更新当前存活时间
        if self.alive() and self.expand():   #如果当前存活时间在爆炸时间内
            move_x=m.cos(m.radians(self.num*360/self.sums))*self.initial_speed   #则执行爆炸,更新横向坐标
            move_y=m.sin(m.radians(self.num*360/self.sums))*self.initial_speed   #更新纵向坐标
            self.canvas.move(self.oval,move_x,move_y)    #在画布上更新烟花
            self.x_speed=move_x/(float(dt)*1000)    #烟花绽放的速度
        elif self.alive():    #如果爆炸结束了,但粒子还存在,则开始坠落
            move_x=m.cos(m.radians(self.num*360/self.sums))    #更新横向坐标
            self.canvas.move(self.oval,self.x_speed+move_x,self.y_speed+0.05*dt)  #在画布上更新烟花
            self.y_speed=self.y_speed+0.5*dt     #烟花坠落的速度
        elif self.oval is not None:    #如果在坠落的时间外了,就将烟花从画布上擦除
            canvas.delete(self.oval)
            self.oval=None

烟花秀的实现

def fireworks(canvas):#烟花函数(循环更新当前界面)
    times=ti.time()       #获取当前时间戳
    explode_points=[]     #烟花列表
    wait_time=r.randint(1,10)      #等待时间
    num_explode=r.randint(20,30)     #烟花的个数
    for point in range(num_explode):     #依次更新各个烟花
        firework=[]      #当前烟花的粒子列表
        x=r.randint(50,550)   #当前烟花的粒子在横向的活动范围
        y=r.randint(50,150)   #当前烟花的粒子在纵向的活动范围
        speed=r.uniform(0.5,2)   #粒子的绽放速度
        size=r.uniform(0.5,1.5)    #粒子的大小
        color=r.choice(colors)     #粒子的颜色
        explosion_speed=r.uniform(0.2,5)    #粒子爆炸的速度
        sum_particles=r.randint(30,50)      #粒子的总数
        max_life=r.uniform(0.6,1.75)        #粒子的最大存活时间
        for i in range(1,sum_particles):   #当前烟花的每个粒子的参数
            fire=particle(canvas,num=i,sums=sum_particles,explosion_speed=explosion_speed,x=x,y=y,x_speed=speed,y_speed=speed,color=color,size=size,max_life=max_life)
            firework.append(fire)    #将当前粒子加入到当前的烟花粒子列表中
        explode_points.append(firework)   #将当前烟花加入到烟花列表中
    expand_time=0     #初始爆炸的时间
    while expand_time<2:    #如果爆炸的时间小于2
        ti.sleep(0.001)     #爆炸帧
        newtime=ti.time()   #获取爆炸一次的时间戳
        times,dt=newtime,newtime-times    #更新当前的时间戳
        for point in explode_points:     #更新所有的粒子位置
            for item in point:
                item.new(dt)
        canvas.update()    #更新当前画布
        expand_time=expand_time+dt   #更新当前的爆炸时间
    global root   #root界面是全局变量
    root.after(wait_time,fireworks,canvas) 

来源地址:https://blog.csdn.net/m0_68111267/article/details/128746664

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python烟花秀

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2023-09-12

Python实现新年烟花秀的代码怎么写

今天就跟大家聊聊有关Python实现新年烟花秀的代码怎么写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 先介绍下 Pygame 绘制烟花的基本原理,烟花从发射到绽放一共分为三个阶段
2023-06-22

基于JavaScript如何实现除夕烟花秀与随机祝福语

这篇文章主要介绍基于JavaScript如何实现除夕烟花秀与随机祝福语,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!项目截图进入后的界面点击按钮点击之后的动画烟花结束后的界面代码实现涉及的技术:HTML5多媒体,CS
2023-06-29

python画烟花的方法是什么

要在Python中绘制烟花,可以使用`turtle`模块来实现。下面是一个简单的例子:```pythonimport turtleimport random# 创建一个海龟对象t = turtle.Turtle()# 设置画布大小和背景色s
2023-08-18

用python实现漂亮的烟花demo

linkimport tkinter as tkfrom PIL import Image, ImageTkfrom time import time, sleepfrom random import choice, uniform, ra
2023-01-31

怎么用Python实现烟花效果

本篇内容主要讲解“怎么用Python实现烟花效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python实现烟花效果”吧!效果如下:这里给出代码,祝各位老哥新年快乐。import pyg
2023-06-29

python实现跨年烟花动态效果

这篇文章主要介绍了python实现跨年烟花的动态效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2023-01-03

Python如何实现浪漫烟花效果

这篇文章主要介绍了Python如何实现浪漫烟花效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1 旖旎风景马上虎年了,也是我的生肖年,很激动!(不小心暴露了年龄,哈哈哈..
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录