范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

2022跨年烟花代码用Python送你一场跨年烟花秀

  2021 已经接近尾声了,2022 即将到来,本文我们用 Python 送你一场跨年烟花秀。
  我们用到的 Python 模块包括:tkinter、PIL、time、random、math,如果第三方模块没有装的话,pip install 一下即可,下面看一下代码实现。
  导库import tkinter as tkfrom PIL import Image, ImageTk  from time import time, sleep  from random import choice, uniform, randint  from math import sin, cos, radians
  烟花颜色
  colors = ["red", "blue", "yellow", "white", "green", "orange", "purple", "seagreen", "indigo", "cornflowerblue"]
  定义烟花类class fireworks:
  def __init__(self, cv, idx, total, explosion_speed, x=0., y=0., vx=0., vy=0., size=2., color="red", lifespan=2, **kwargs):
  self.id = idx# 烟花绽放 x 轴
  self.x = x
  # 烟花绽放 x 轴
  self.y = y
  self.initial_speed = explosion_speed
  # 外放 x 轴速度
  self.vx = vx
  # 外放 y 轴速度
  self.vy = vy
  # 绽放的粒子数
  self.total = total
  # 已停留时间
  self.age = 0
  # 颜色
  self.color = color
  # 画布
  self.cv = cv
  self.cid = self.cv.create_oval(x - size, y - size, x + size, y + size,
  fill=self.color)
  self.lifespan = lifespan
  # 更新数据
  def update(self, dt):
  self.age += dt
  # 粒子膨胀
  if self.alive() and self.expand():
  move_x = cos(radians(self.id * 360 / self.total)) * self.initial_speed
  move_y = sin(radians(self.id * 360 / self.total)) * self.initial_speed
  self.cv.move(self.cid, move_x, move_y)
  self.vx = move_x / (float(dt) * 1000)
  # 膨胀到最大下落
  elif self.alive():
  move_x = cos(radians(self.id * 360 / self.total))
  self.cv.move(self.cid, self.vx + move_x, self.vy + 0.5 * dt)
  self.vy += 0.5 * dt
  # 过期移除
  elif self.cid is not None:
  cv.delete(self.cid)
  self.cid = None
  # 定义膨胀效果的时间帧
  def expand(self):
  return self.age <= 1.5
  # 检查粒子是否仍在生命周期内
  def alive(self):
  return self.age <= self.lifespan
  燃放烟花def ignite(cv):
  t = time()
  # 烟花列表
  explode_points = []
  wait_time = randint(10, 100)
  # 爆炸的个数
  numb_explode = randint(6, 10)
  for point in range(numb_explode):
  # 爆炸粒子列表
  objects = []
  # 爆炸 x 轴
  x_cordi = randint(50, 550)
  # 爆炸 y 轴
  y_cordi = randint(50, 150)
  speed = uniform(0.5, 1.5)
  size = uniform(0.5, 3)
  color = choice(colors)
  # 爆炸的绽放速度
  explosion_speed = uniform(0.2, 1)
  # 爆炸的粒子数半径
  total_particles = randint(10, 50)
  for i in range(1, total_particles):
  r = fireworks(cv, idx=i, total=total_particles, explosion_speed=explosion_speed, x=x_cordi, y=y_cordi,
  vx=speed, vy=speed, color=color, size=size,
  lifespan=uniform(0.6, 1.75))
  # 添加进粒子列表里
  objects.append(r)
  # 把粒子列表添加到烟花列表
  explode_points.append(objects)
  total_time = .0
  # 在 1.8 秒时间帧内保持更新
  while total_time < 1.8:
  # 让画面暂停 0.01s
  sleep(0.01)
  # 刷新时间
  tnew = time()
  t, dt = tnew, tnew - t
  # 遍历烟花列表
  for point in explode_points:
  # 遍历烟花里的粒子列表
  for item in point:
  # 更新时间
  item.update(dt)
  # 刷新页面
  cv.update()
  total_time += dt
  root.after(wait_time, ignite, cv)
  启动if __name__ == "__main__":
  root = tk.Tk()
  # 绘制一个画布
  cv = tk.Canvas(root, height=400, width=600)
  # 背景图
  image = Image.open("bg.jpg")
  photo = ImageTk.PhotoImage(image)
  # 在画板上绘制一张图片
  cv.create_image(0, 0, image=photo, anchor="nw")
  cv.pack()
  root.protocol(close)
  root.after(100, ignite, cv)
  # 生成窗口
  root.mainloop()
  看一下效果:

电动车面临淘汰,氢动车出现,不充电续航更远,车主十分期待现在人们生活中除了汽车之外,最重要的交通代步工具就是电动车,相比汽车,电动车方便灵活,不会堵车,也更容易停车,所以深受人们喜爱,尤其是在城市内短途出行的时候,发挥了重要的作用。如今走进八月,向光而行时光的针脚,一路向前。看,八月的阳光,从窗口照了进来。它带着炙热与明亮,带着问候与祝福,也带着从容与淡定,如约而至,亦如昨日般的明媚与动人。八月来了,又是新的一个月份,也是新的一天库里VS微笑刺客,谁是历史第二控卫?对比10项数据和荣誉NBA历史上最伟大的控球后卫,毫无悬念就是魔术师了,他和乔丹一样,代表着各自位置的天花板。那在魔术师之后,谁是历史第二控卫呢?每个球迷心中的答案都不一样,有人认为是库里,有人认为是你是我的春天,要相信春天终会来临只要你在,四季皆春!转眼间疫情围绕人间已经三年了,,人生又有多少个三年呢!从2020到2022,每一天都在希望疫情赶紧过去,多么想突然有一天广播说到疫情结束了!看过这部电影,先不管新歌一直说不清解析歌曲一直说不清以心碎的句子开篇,去铺垫悲伤的情绪,然后继续用忧伤的词语去描叙过去我对你为爱痴狂的绵绵情意。还有就是让整首词的情绪上升,所以开始就用情景交融的写法去写在爱里挣扎的我有八月份新机大混战安卓携手骁龙8已经杀疯了今天是8月1日,天气很热,但机圈更热,这个月将会有一大批骁龙8新机上架,从目前各厂商的预热信息看,都是清一色的旗舰机,这里我汇总一波目前得到的新机信息红米K50SProK50宇宙的骁龙8gen1手机排行榜十大骁龙8gen1手机产品,其中前十名分别是RedmiK50电竞版(12GB256GB)小米12(8GB128GB)小米12Pro(12GB256GB)一加10Pro(8GB256让iPhone物超所值的备忘录使用技巧iPhone手机的性能是有目共睹的,很多iPhone用户之所以选择iPhone,就是对它的性能比较看好。一款手机的性能,是需要通过软件来体现的,而iPhone手机在办公中的性能,则iphone14系列即将发布,现在买iphone13系列香吗?每年很多媒体和数码发烧友都在关心新款iphone何时发布,而转眼来看iphone13系列已经要发布快一年的时间了,大家现在已经没有心思再关心iphone13系列了,已经把注意力转移勇闯深水区!盘点各国产手机厂商的那些自研芯片们近年来,自研芯片的浪潮席卷了整个手机行业,各大国产手机厂商都纷纷表示要自研芯片,值得注意的是,这里面说的芯片可并不单单指广为人知的处理器或者基带,也并不意味着联发科和高通很快就要面八月发售游戏部分总结下篇包括黑道圣徒灵魂骇客2黑道圣徒(SaintsRow)预购价格209(土区108。85)游戏简介玩家身为未来的老大,在妮娜凯文和伊莱等人的帮助下,将会创立圣徒,对抗豹子帮偶像派及马歇尔等敌对势力,在圣多伊
板块出现重大布局机会,这家零部件已供货比亚迪蔚小理等车企电报解读6月新能源车零售销量大增130,机构称三季度行业有望迎来库存周期与朱格拉周期共振,这家公司零部件已供货比亚迪蔚小理等车企。6月新能源车零售销量大增130,机构称三季度行业有沈子瑜领衔全新魅族,最新内部信流出,这些信息很关键随着新技术浪潮的冲击,行业间的融合创新成为趋势,未来电子消费行业和高新技术行业的界限,可能不再划分的如此明显,各大厂商间的合作步伐也会愈加紧密。近日,由李书福领衔的湖北星纪时代科技国人DAO大败局放心吧我们都实现不了去中心化自治相信每个DAO的参与者,都会遇到过以下问题自称DAO,却跟社群没区别核心团队集权统治招志愿者,白嫖劳动力开会繁琐,难以共识,没人做事简单来说既不去中心,也不自治,连良好的激励机制也小鹏汽车6月交付成绩夺冠!小鹏汽车这个月成绩单的含金量有点大!月度季度半年度冠军三连!连续四个季度新势力第一!7月1日,我们公布了最新交付成绩,再度刷新多项新势力纪录。2022年6月总交付15,295台,同迄今为止最完整的DDD实践作者章磊(章三)阿里飞猪技术团队一为什么需要DDD对于一个架构师来说,在软件开发中如何降低系统复杂度是一个永恒的挑战。复杂系统设计系统多,业务逻辑复杂,概念不清晰,有什么合适的方法SpringCloud系列10SpringCloudGateway网关学习目标Gateway是什么?它有什么作用?Gateway中的断言使用Gateway中的过滤器使用Gateway中的路由使用第1章网关1。1网关的概念简单来说,网关就是一个网络连接推荐收藏生物制品的冻干工艺研究进展摘要在过去二十年中,生物制药在改善各种癌症自身免疫遗传疾病等患者的生活质量方面取得了突破性进展。随着生物制药需求的不断增长,在不影响产品安全性质量和功效的前提下,降低制造成本至关重ModelY又卖爆了?比Model3销量高,特斯拉6月交付量公布各位老司机们,大家好!请点击关注汽车行业情报站,第一时间了解最新的汽车资讯,在这里轻松读懂汽车!近日,情报君从相关渠道获悉,乘联会公布2022年6月乘用车市场最新销量数据,数据显示快充,谁更快?原标题快速充电技术火了文本报实习记者杨梓近日,多氟多发布公告称,其子公司广西宁福新能源科技与广州巨湾技研有限公司签订协议,共同投资设立广西宁福巨湾新能源科技有限公司,经营范围包括生同样是国内数一数二的app,为什么微信和抖音下载量相差这么多同样是国内数一数二的app,为什么微信和抖音下载量相差这么多。如图,以苹果appstore为例,微信下载量为656万,而抖音却4000多万,相差6倍多。微信早在2011年就推出,以NBA最穷和最富的老板分别都是谁?哪些老板还不如旗下球员有钱?一支球队每年要支付球员工资教练工资球队运营推广场馆租赁维护球探试训组织训练营客场住宿交通以及球队经理医疗装备等各项支出,这些累计加起来轻松就可以突破两亿美金,所以想运营一支NBA球