学完本教程后,你也能做出这样的烟花秀。
如上图示,我们这里通过让画面上一个粒子分裂为X数量的粒子来模拟爆炸效果。粒子会发生"膨胀”,意思是它们会以恒速移动且相互之间的角度相等。这样就能让我们以一个向外膨胀的圆圈形式模拟出烟花绽放的画面。
经过一定时间后,粒子会进入"自由落体”阶段,也就是由于重力因素它们开始坠落到地面,仿若绽放后熄灭的烟花。
基本知识:用Python和Tkinter设计烟花。
这里不再一股脑把数学知识全丢出来,我们边写代码边说理论。首先,确保你安装和导入了Tkinter,它是Python的标准GUI库,广泛应用于各种各样的项目和程序开发,在Python中使用Tkinter可以快速的创建GUI应用程序。
import tkinter as tk
from PIL import Image, ImageTk
from time import time, sleep
from random import choice, uniform, randint
from math import sin, cos, radians
除了Tkinter之外,为了能让界面有漂亮的背景,我们也导入PIL用于图像处理,以及导入其它一些包,比如time,random和math。它们能让我们更容易的控制烟花粒子的运动轨迹。
Tkinter应用的基本设置如下:
root = tkTk()
为了能初始化Tkinter,我们必须创建一个Tk()根部件(root widget),它是一个窗口,带有标题栏和由窗口管理器提供的其它装饰物。该根部件必须在我们创建其它小部件之前就创建完毕,而且只能有一个根部件。
w = tkLabel(root, text="Hello Tkinter!")
这一行代码包含了Label部件。该Label调用中的第一个参数就是父窗口的名字,即我们这里用的"根”。关键字参数"text”指明显示的文字内容。你也可以调用其它小部件:Button,Canvas等等。
wpack()
rootmainloop()
接下来的这两行代码很重要。这里的打包方法是告诉Tkinter调整窗口大小以适应所用的小部件。窗口直到我们进入Tkinter事件循环,被rootmainloop()调用时才会出现。在我们关闭窗口前,脚本会一直在停留在事件循环。
将烟花绽放转译成代码
现在我们设计一个对象,表示烟花事件中的每个粒子。每个粒子都会有一些重要的属性,支配了它的外观和移动状况:大小,颜色,位置,速度等等。
1、忘了如何去爱,忘了如何去痛,忘了所有的一切,剩下的只是,行尸走肉。
2、全世界就这么一个我,再差,也找不出第二个。
3、即使遇见你是一场致命邂逅,我依然甘之如饴。
4、每一段青春到最后都会苍老,但我希望记忆里的你,一切都好。
5、比起人,我还是喜欢手机,起码手机会告诉你电量不足,但人总是一声不吭的走掉。
6、你说你不懂我你是不懂还是从来没有用心过
7、才发现爱不代表一切 再真心也会被阻绝
8、只要他要,只要我有 倾我所能,尽我所有。
9、传说某个时代的三大明星人物:雷锋,张海迪,小兵张嘎,简称雷迪嘎嘎
10、等待又是那么漫长,我细数着每分每秒,落寂如荒草般疯长,心在此时被寂寞煎熬得透彻淋漓。
11、逞强过后,眼泪不再是伤痛的祭奠。
12、早上刚一起床,就有一股午睡的冲动。
13、这个世界上任何东西都会被时间涂抹更改,但,有你在,我便也在。
14、得不到的永远在骚动,被偏爱的都有恃无恐
15、到底有多爱,才会拿命惜。
16、肯定有一半的我,占用了更多的光线,而另一半的我,接受了长夜,和泥沼。肯定有一个我,对世界知之甚少,而另一个我,比河川更理解变迁。
18、你对我忽冷忽热,其实就是仗着我爱你
19、你看得见我打在屏幕上的字,却看不到我掉在键盘上的泪。
20、对于活在我回忆里的你,我既不想随意丢失,又不知如何安放。
21、我的眼泪,只能证明我的悲伤而已。
22、-这世界我不想管谁、也不想让谁管,自己一个人呆就够了,拥有一个人的世界。
23、但无根久涸 终于还是失去 那种痛彻的决然我分不清是放逐还是救赎。
24、许多路,得你自己走,不过没关系,因为你是你最坚强的后盾。
25、遇见你,我花光了所有的运气。爱过你,我用尽了最好的自己。
26、想着总有一天会成为那种,即使知道你不喜欢我,也只是眨眨眼点点头,然后继续喜欢你的炫酷又高冷的家伙。
27、以前总觉得,爱一个人就是永不分开;后来才明白,原来比一生一世更浪漫的是历经重重岁月,打破命运的转折,重逢相爱,一起变老。
28、你来过一阵子,我却要怀念一辈子。
29、你没有挽留,我没有回头,如此余生各自安好。
30、恋爱不能凑合,在你最好的时候,你把自己暂时交给不喜欢的,就会错过合适的
31、曾经的誓言,背叛了我们而你,离我而去
32、你瘦的时候住进我心里,后来胖了,便卡在里面出不来了。
33、时光如水,总是无言;若你安好,便是晴天。
34、我的世界那么小全是他,他的世界那么大却没有我。
35、我想做你的太阳,可你已经有了整片星空。
36、我和你在一起,是因为我选择和你在一起。我不想按别人的方式去生活。
37、我不习惯喊痛 我不是只有无动於衷 也曾经告诉她 我伤的有多重!
天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花,工作之余也可以随时让程序为自己放一场烟花秀。
python炫酷烟花表白源代码
这个有趣的小项目并不复杂,只需一点可视化技巧,100余行Python代码和程序库Tkinter,最后我们就能达到下面这个效果:
学完本教程后,你也能做出这样的烟花秀。
整体概念梳理
我们的整个理念比较简单。
我们这里通过让画面上一个粒子分裂为X数量的粒子来模拟爆炸效果。粒子会发生"膨胀”,意思是它们会以恒速移动且相互之间的角度相等。这样就能让我们以一个向外膨胀的圆圈形式模拟出烟花绽放的画面。经过一定时间后,粒子会进入"自由落体”阶段,也就是由于重力因素它们开始坠落到地面,仿若绽放后熄灭的烟花。
欢迎分享,转载请注明来源:表白网
评论列表(0条)