# -*- coding: utf-8 -*-import math, random,timeimport threadingimport tkinter as tkimport re uuidFireworks=[]maxFireworks=8height,width=600,600class firework(object):def __init__(self,color,speed,width,height):=uuid.uuid1()self.radius=random.randint(2,4) ~4像素self.color=color self.speed=speed .5-3.5秒self.status=0 ,status=0;爆炸后,status=1;當(dāng)status100時(shí),煙花的生命期終止self.nParticle=random.randint(20,30) self.center=[random.randint(0,width-1),random.randint(0,height-1)] self.oneParticle=[] (100%狀態(tài)時(shí))self.rotTheta=random.uniform(0,2*math.pi) :x=a*cos(theta),y=b*sin(theta)=[a,b]
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供鎮(zhèn)賚網(wǎng)站建設(shè)、鎮(zhèn)賚做網(wǎng)站、鎮(zhèn)賚網(wǎng)站設(shè)計(jì)、鎮(zhèn)賚網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、鎮(zhèn)賚企業(yè)網(wǎng)站模板建站服務(wù),十多年鎮(zhèn)賚做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
煙花代碼如下:
package love;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java點(diǎn)虐 .URL;
import java.util.Random;
煙花
@author enjoy
@SuppressWarnings("serial")
public class Q extends Applet implements Runnable
public int speed, variability, Max_Number, Max_Energy, Max_Patch,
Max_Length, G;
public String sound;
private int width, height;
private Thread thread = null;
private BeaClassDemo bcd[];
public void init()? ? ? ? ? ? ? ? ? ? ?
int i;
this.setSize(1900, 900);
width = getSize().width - 1;
height = getSize().height - 1;
speed = 1;??????????????????????? // 煙花綻放的速度
variability = 10;
Max_Number = 980;??????????????????? // 可發(fā)出煙花的最大數(shù)目
Max_Energy = width + 50;
Max_Patch = 90;??????????????????? // 最大的斑點(diǎn)數(shù)
Max_Length = 90;??????????????????? // 斑點(diǎn)的最大距離
G = 150;??????????????????????????? // 向地面彎曲的力度
bcd = new BeaClassDemo[Max_Number];
for (i = 0; i Max_Number; i++)
bcd[i] = new BeaClassDemo(width, height, G);
}
public void start() {
if (thread == null) {
thread = new Thread(this);
thread.start();
}
}
@SuppressWarnings("deprecation")
public void stop() {
if (thread != null) {
thread.stop();
thread = null;
}
}
@SuppressWarnings({ "unused", "static-access" })
public void run() {
int i;
int E = (int) (Math.random() * Max_Energy * 3 / 4) + Max_Energy / 4 + 1;
int P = (int) (Math.random() * Max_Patch * 3 / 4)??? // 煙花的斑點(diǎn)數(shù)
+ Max_Patch / 4 + 1;
int L = (int) (Math.random() * Max_Length * 3 / 4)??? // 煙花可發(fā)射出的距離
+ Max_Length / 4 + 1;
long S = (long) (Math.random() * 10000);
boolean sleep;
Graphics g = getGraphics();
URL u = null;
while (true) {
try {
thread.sleep(1000 / speed);
catch (InterruptedException x) {
sleep = true;
for (i = 0; i Max_Number; i++)
sleep = sleep bcd[i].sleep;
if (sleep Math.random() * 100 variability) {
E = (int) (Math.random() * Max_Energy * 3 / 4) + Max_Energy / 4
+ 1;
P = (int) (Math.random() * Max_Patch * 3 / 4) + Max_Patch / 4
+ 1;
L = (int) (Math.random() * Max_Length * 3 / 4) + Max_Length / 4
+ 1;
S = (long) (Math.random() * 10000);
for (i = 0; i Max_Number; i++) {
if (bcd[i].sleep Math.random() * Max_Number * L 1)
bcd[i].init(E, P, L, S);
bcd[i].start();
bcd[i].show(g);
public void paint(Graphics g)? ? ? ? ? ? ? ? ?
g.setColor(Color.black);
g.fillRect(0, 0, width + 1, height + 1);
class BeaClassDemo
public boolean sleep = true;
private int energy, patch, length, width, height, G, Xx, Xy, Ex[], Ey[], x,
y, Red, Blue, Green, t;
private Random random;
public BeaClassDemo(int a, int b, int g)? ? ? ?
width = a;
height = b;
G = g;
public void init(int e, int p, int l, long seed)?
int i;
energy = e;
patch = p;
length = l;
// 創(chuàng)建一個(gè)帶種子的隨機(jī)數(shù)生成器
random = new Random(seed);
Ex = new int[patch];
Ey = new int[patch];
Red = (int) (random.nextDouble() * 128) + 128;
Blue = (int) (random.nextDouble() * 128) + 128;
Green = (int) (random.nextDouble() * 128) + 128;
Xx = (int) (Math.random() * width / 2) + width / 4;
Xy = (int) (Math.random() * height / 2) + height / 4;
for (i = 0; i patch; i++) {
Ex[i] = (int) (Math.random() * energy) - energy / 2;
Ey[i] = (int) (Math.random() * energy * 7 / 8) - energy / 8;
public void start
t = 0;
sleep = false;
public void show(Graphics g)? ? ?
if (!sleep)??????????????????
if (t length)
int i, c;
double s;
Color color;
c = (int) (random.nextDouble() * 64) - 32 + Red;
if (c = 0 c 256)
Red = c;
c = (int) (random.nextDouble() * 64) - 32 + Blue;
if (c = 0 c 256)
Blue = c;
c = (int) (random.nextDouble() * 64) - 32 + Green;
if (c = 0 c 256)
Green = c;
color = new Color(Red, Blue, Green);
for (i = 0; i patch; i++)
s = (double) t / 100;
x = (int) (Ex[i] * s);
y = (int) (Ey[i] * s - G * s * s);
g.setColor(color);
g.drawLine(Xx + x, Xy - y, Xx + x, Xy - y);
if (t = length / 2)
int j;
for (j = 0; j 2; j++)
s = (double) ((t - length / 2) * 2 + j) / 100;
x = (int) (Ex[i] * s);
y = (int) (Ey[i] * s - G * s * s);
g.setColor(Color.black);
g.drawLine(Xx + x, Xy - y, Xx + x, Xy - y);
常用的編程語言。
編程語言一:C語言
C語言是世界上最流行、使用最廣泛的高級(jí)程序設(shè)計(jì)語言之一。在操作系統(tǒng)和系統(tǒng)使用程序以及需要對(duì)硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其它高級(jí)語言,許多大型應(yīng)用軟件都是用C語言編寫的。
編程語言二:java
Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)(即JavaSE, JavaEE, JavaME)的總稱。
編程語言三:c++
C++這個(gè)詞在中國大陸的程序員圈子中通常被讀做“C加加”,而西方的程序員通常讀做“C plus plus" , "CPP”。 它是一種使用非常廣泛的計(jì)算機(jī)編程語言。C++是一種靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的通用程序設(shè)計(jì)語言。
import?java.awt.*;
import?java.applet.*;
import?java.awt.event.*;
import?javax.swing.*;
public?class?Fireworks?extends?Applet?implements?MouseListener,?Runnable?{
int?x,?y;//記錄鼠標(biāo)點(diǎn)擊的坐標(biāo)
int?top,?point;//好像沒用到
public?void?init()?{
x?=?0;
y?=?0;
setBackground(Color.black);//?設(shè)置背景色為黑色
addMouseListener(this);//添加鼠標(biāo)監(jiān)聽
}
public?void?paint(Graphics?g)?{
}
public?static?void?main(String?args[])?{
Fireworks?applet?=?new?Fireworks();
JFrame?frame?=?new?JFrame("TextAreaNew");
frame.addWindowListener(new?WindowAdapter()?{
public?void?windowClosing(WindowEvent?e)?{//右上角的叉
System.exit(0);
}
});
frame.add(applet,?BorderLayout.CENTER);
frame.setSize(800,?400);//程序的框框大小
applet.init();
applet.start();
frame.setVisible(true);//
}
public?void?run()?{
//?變量初始化
Graphics?g1;
g1?=?getGraphics();//這是畫筆,得到一個(gè)畫筆
int?y_move,?y_click,?x_click;
int?v;//用于計(jì)算等待的時(shí)間
x_click?=?x;
y_click?=?y;//把點(diǎn)擊的坐標(biāo)保存下來,因?yàn)槠渌€程會(huì)去改這兩個(gè)坐標(biāo)。
y_move?=?400;//用來計(jì)算變動(dòng)的那個(gè)點(diǎn),現(xiàn)在是屏幕的最大高度
v?=?3;
int?r,?g,?b;
while?(y_move??y_click)//如果點(diǎn)擊的位置小于最大高度。
{
g1.setColor(Color.black);//畫筆設(shè)成黑色
g1.fillOval(x_click,?y_move,?5,?5);//畫圓,圓點(diǎn)在點(diǎn)擊的X軸,程序界面的最高點(diǎn),長為5,寬為5
y_move?-=?5;//最高點(diǎn)-5
r?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
g?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
b?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;//rgb是光的三原色,這個(gè)就是煙花產(chǎn)生的顏色,這里定義成隨機(jī)的,但在一個(gè)范圍里
g1.setColor(new?Color(r,?g,?b));//把畫筆改成那個(gè)顏色
g1.fillOval(x_click,?y_move,?5,?5);//畫一個(gè)這樣的圓
for?(int?j?=?0;?j?=?10;?j++)?{
if?(r??55)
r?-=?20;
if?(g??55)
g?-=?20;
if?(b??55)
b?-=?20;
g1.setColor(new?Color(r,?g,?b));
g1.fillOval(x_click,?y_move?+?j?*?5,?5,?5);//這一段都是改變顏色,然后畫圓的
}
g1.setColor(Color.black);
g1.fillOval(x_click,?y_move?+?5?*?10,?5,?5);//把上一次畫的彩色圓,用黑色畫一遍,就能讓它消失在背景里
try?{
Thread.currentThread().sleep(v++);//讓程序等一下,讓你看到效果,不然畫完的東西一下就不見了,你看不清。
}?catch?(InterruptedException?e)?{
}
}//上面這段代碼是煙花的升上去的那一串東西的效果
for?(int?j?=?12;?j?=?0;?j--)?{
g1.setColor(Color.black);
g1.fillOval(x_click,?y_move?+?(j?*?5),?5,?5);
try?{
Thread.currentThread().sleep((v++)?/?3);
}?catch?(InterruptedException?e)?{
}
}//讓最后的那串東西的點(diǎn)消失
y_move?=?400;
g1.setColor(Color.black);
while?(y_move??y_click)?{
g1.fillOval(x_click?-?2,?y_move,?9,?5);
y_move?-=?5;
}//這段不太清楚是干什么的,我把它去掉,看不出效果的變化
v?=?15;
for?(int?i?=?0;?i?=?25;?i++)?{
r?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
g?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
b?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
g1.setColor(new?Color(r,?g,?b));
g1.drawOval(x_click?-?3?*?i,?y_click?-?3?*?i,?6?*?i,?6?*?i);
if?(i??23)?{
g1.drawOval(x_click?-?3?*?(i?+?1),?y_click?-?3?*?(i?+?1),
6?*?(i?+?1),?6?*?(i?+?1));
g1.drawOval(x_click?-?3?*?(i?+?2),?y_click?-?3?*?(i?+?2),
6?*?(i?+?2),?6?*?(i?+?2));
}//上面這段是畫爆炸的效果
try?{
Thread.currentThread().sleep(v++);//停一下,看效果
}?catch?(InterruptedException?e)?{
}
g1.setColor(Color.black);
g1.drawOval(x_click?-?3?*?i,?y_click?-?3?*?i,?6?*?i,?6?*?i);//然后畫黑圈,相當(dāng)于讓彩圈消失。
}
}
public?void?mousePressed(MouseEvent?e)?{//點(diǎn)擊從這里開始~~~~~~~~~~~~~~
x?=?e.getX();
y?=?e.getY();//得到鼠標(biāo)點(diǎn)擊的坐標(biāo)
Thread?one?=?new?Thread(this);//新建一個(gè)線程
one.start();//啟動(dòng)這個(gè)線程,到上面的run方法
one?=?null;//把這個(gè)線程置為空,讓它執(zhí)行完以后就釋放
}
如果你想一下自己寫要怎樣寫這個(gè)程序,就很容易理解這個(gè)程序了。
一直從下向上畫圓,然后把下面的圓擦掉,就能得到一個(gè)向上升的煙花效果,
爆炸效果就是先畫小圓再畫大圓,然后擦掉小圓,再擦掉大圓。
喔哇,
都是啥子年代了,
還食古不化,
在觸摸屏幕用手指劃動(dòng)而產(chǎn)生燃放煙花的虛擬圖像效果,
早就被時(shí)代徹底底拋棄了??!
現(xiàn)在都是在空中一劃,根據(jù)手勢,根據(jù)手勢的空間運(yùn)動(dòng),
立即就是實(shí)際來真格的,
真實(shí)、震撼、空間大爆炸、場面駭人、驚天動(dòng)地。
無接觸,
摒棄虛擬的虛假玩意兒。
你吹一口氣,
燃放裝置就噴出一股火焰。
機(jī)械加工能力和基礎(chǔ)強(qiáng)勁的,
產(chǎn)生1米邊長見方立體焰火造型,
與產(chǎn)生100米見方焰火造型的設(shè)備是通用的。
你與情侶自拍“刷臉”就立即產(chǎn)生肖像燃放造型,
其詳細(xì)的工程技術(shù)細(xì)節(jié),
早就有中英文對(duì)照的文本,
照著去做就可以了,
無需操作機(jī)床加工的人員,
去“進(jìn)一步研究思考”、去開展“創(chuàng)造性的工作”。