Processing與粒子系統(tǒng)的實現(xiàn)

ParticleSystem ps;

PShape s;

float angle=0;

float aVelocity=0;

float aAcceleration=0.001;

void setup() {

? size(240, 860);

? ps = new ParticleSystem(new PVector(width/2, height-50));

}

void draw() {

? background(255);

? ps.addParticle();

? ps.run();

}

void mousePressed(){

? ps=(new ParticleSystem(new PVector(mouseX,mouseY)));

}

class Particle {

? PVector location;

? PVector velocity;

? PVector acceleration;

? float lifespan;

? Particle(PVector l) {

? ? // The acceleration

? ? acceleration = new PVector(0, 0.05);

? ? // circel's x and y ==> range

? ? velocity = new PVector(random(-1, 1), random(-14, -1));

? ? // apawn's position

? ? location = l.copy();

? ? // the circle life time

? ? lifespan = 255.0;

? }

? void run() {

? ? update();

? ? display();

? }

? void update() {

? ? velocity.add(acceleration);

? ? location.add(velocity);


? }

? boolean isDead() {

? ? if (lifespan <= 0) {

? ? ? return true;

? ? } else {

? ? ? return false;

? ? }

? }

? void display() {

? ? // border

? ? stroke(0, lifespan);

? ? // border's weight

? ? strokeWeight(1);

? ? float r = random(0,255);

? ? float g = random(0,255);

? ? float b = random(0,255);

? ? // random the circle's color

? ? fill(r,g,b, lifespan);

? ? rectMode(CENTER);

? ? pushMatrix();

? // translate(0,0);

? ? rotate(angle);


? ? float k=random(1,10);

? ? line(location.x-k,location.y,location.x+k,location.y);

? ? ellipse(location.x+k,location.y,8,8);

? ? ellipse(location.x-k,location.y,8,8);? ?

? ? line(location.x,location.y-k,location.x,location.y+k);

? ? ellipse(location.x,location.y+k,8,8);

? ? ellipse(location.x,location.y-k,8,8);


? ? s=createShape();

? s.beginShape();

? s.vertex(location.x+50/2,location.y+18/2);

? s.vertex(location.x+61/2,location.y+37/2);

? s.vertex(location.x+83/2,location.y+43/2);

? s.vertex(location.x+69/2,location.y+60/2);

? s.vertex(location.x+71/2,location.y+82/2);

? s.vertex(location.x+50/2,location.y+73/2);

? s.vertex(location.x+29/2,location.y+82/2);

? s.vertex(location.x+31/2,location.y+60/2);

? s.vertex(location.x+17/2,location.y+43/2);

? s.vertex(location.x+39/2,location.y+37/2);

? s.endShape();

? ? shape(s);

? ? popMatrix();



? ? // draw circle

? ? //float k=10;

? // ellipse(location.x, location.y, k, k);

? }

}

class ParticleSystem {

? ArrayList<Particle> particles;

? PVector origin;

? ParticleSystem(PVector position) {

? ? origin = position.copy();

? ? particles = new ArrayList<Particle>();

? }

? void addParticle() {

? ? particles.add(new Particle(origin));

? }

? void run() {

? ? for (int i = particles.size()-1; i >= 0; i--) {

? ? ? Particle p = particles.get(i);

? ? ? p.run();

? ? ? if (p.isDead()) {

? ? ? ? particles.remove(i);

? ? ? }

? ? }

? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敷硅,一起剝皮案震驚了整個濱河市砸烦,隨后出現(xiàn)的幾起案子革骨,更是在濱河造成了極大的恐慌平道,老刑警劉巖非驮,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件振定,死亡現(xiàn)場離奇詭異惕蹄,居然都是意外死亡关带,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門褥傍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來儡嘶,“玉大人,你說我怎么就攤上這事恍风”目瘢” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵朋贬,是天一觀的道長凯楔。 經(jīng)常有香客問我,道長锦募,這世上最難降的妖魔是什么摆屯? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮糠亩,結(jié)果婚禮上虐骑,老公的妹妹穿的比我還像新娘准验。我一直安慰自己,他們只是感情好廷没,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布糊饱。 她就那樣靜靜地躺著,像睡著了一般颠黎。 火紅的嫁衣襯著肌膚如雪另锋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天盏缤,我揣著相機與錄音砰蠢,去河邊找鬼。 笑死唉铜,一個胖子當著我的面吹牛台舱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播潭流,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼竞惋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了灰嫉?” 一聲冷哼從身側(cè)響起拆宛,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讼撒,沒想到半個月后浑厚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡根盒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年钳幅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炎滞。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡敢艰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出册赛,到底是詐尸還是另有隱情钠导,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布森瘪,位于F島的核電站牡属,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏扼睬。R本人自食惡果不足惜逮栅,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧证芭,春花似錦、人聲如沸担映。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝇完。三九已至官硝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間短蜕,已是汗流浹背氢架。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留朋魔,地道東北人岖研。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像警检,于是被迫代替她去往敵國和親孙援。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,031評論 0 2
  • 大軍西去扇雕,人去樓空拓售。 獨有茉莉香飄萬里, 又有芳草青青楊柳依依镶奉, 唯有鴻雁鳴啾啾础淤。 軍從萬里歸, 庶民歡躍哨苛,遠聞暴...
    陳旭_vivi閱讀 247評論 3 3
  • 昏昏沉沉的一天又過去鸽凶,身體一天比一天疲憊,自己最近有點太著急了移国。趕緊調(diào)整吱瘩! 今天去維護資源的時候,發(fā)現(xiàn)有的顧客竟然...
    燕子_e711閱讀 172評論 0 1
  • 迷霧漸失來路迹缀,不知青鳥歸處使碾。橋邊倚欄人,望斷西沉日暮祝懂。何故票摇?何故?心頭相思長駐砚蓬。
    我是CC閱讀 215評論 0 2