python炫酷烟花表白源代码是多少?

Python023

python炫酷烟花表白源代码是多少?,第1张

学完本教程后,你也能做出这样的烟花秀。

如上图示,我们这里通过让画面上一个粒子分裂为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 = tk.Tk()

为了能初始化Tkinter,我们必须创建一个Tk()根部件(root widget),它是一个窗口,带有标题栏和由窗口管理器提供的其它装饰物。该根部件必须在我们创建其它小部件之前就创建完毕,而且只能有一个根部件。

w = tk.Label(root, text="Hello Tkinter!")

这一行代码包含了Label部件。该Label调用中的第一个参数就是父窗口的名字,即我们这里用的"根”。关键字参数"text”指明显示的文字内容。你也可以调用其它小部件:Button,Canvas等等。

w.pack()

root.mainloop()

接下来的这两行代码很重要。这里的打包方法是告诉Tkinter调整窗口大小以适应所用的小部件。窗口直到我们进入Tkinter事件循环,被root.mainloop()调用时才会出现。在我们关闭窗口前,脚本会一直在停留在事件循环。

将烟花绽放转译成代码

现在我们设计一个对象,表示烟花事件中的每个粒子。每个粒子都会有一些重要的属性,支配了它的外观和移动状况:大小,颜色,位置,速度等等。

简单的,可以使用python 的CGI模块,需要你的服务器开启CGI支持。

网页内容如下:

1

2

3

4

5

6

7

8

9

10

11

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8" />

<title>python cgi</title>

</head><body>

<p style="font-size:24ptcolor:red">输入登录密码:</p>

<form name="zhaji" action="login.py" method="post">

<p>密 码:<input type="password" name="ma" size="9"></p>

<input type="button" name="shuru" value="登录" onclick="zhaji.submit()">

</form>

</body></html>

login.py文件内容如下:

1

2

3

4

5

6

7

8

9

#!/usr/bin/python

#coding:utf-8

import cgi

form = cgi.FieldStorage()

ma = ""

if 'ma' in form:

ma = form["ma"].value

print '''Content-Type: text/html\n\n'''

print '''<html><head><meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8" /> <title>python cgi</title></head><body><p>你输入的密码是:%s</p></body></html>''' % ma