「The Nature of Code」からパーティクルについて取り上げます。まず、ひと粒のパーティクルを描画することから始めます。Processingでプログラムを書いて、動作を確認します。動作を確認できるところがProcessingの楽しいところです。
パーティクル
ベクトルを利用してパーティクルを描画します。パーティクルは、位置、速度、加速度、生存期間を持ちます。生存期間の長さとパーティクルの不透明度を連動させます。生存期間が、0より小さいとパーティクルは透明になります。
パーティクルのシミュレーション
以下は、パーティクルの参考例です。
//A single particle Particle p; void setup(){ size(200, 200); p = new Particle(new PVector(width/2, 50)); } void draw(){ background(255); p.run(); if(p.isDead()){ println("Particle dead!"); } }
class Particle{ PVector location; PVector velocity; PVector acceleration; float lifespan; //生存期間 //コンストラクタ Particle(PVector l){ location = l.copy(); velocity = new PVector(random(-1, 1), random(-2, 0)); acceleration = new PVector(0, 0.05); lifespan = 255; } //実行 void run(){ update(); display(); } //値の更新 void update(){ velocity.add(acceleration); location.add(velocity); lifespan -= 2.0; } //図形の描画 void display(){ stroke(0, lifespan); fill(175, lifespan); ellipse(location.x, location.y, 8, 8); } //粒子の生存確認 boolean isDead(){ if(lifespan < 0.0){ return true; }else{ return false; } } }
まとめ
「The Nature of Code」からパーティクルについて取り上げました。まず、ひと粒のパーティクルを描画しました。引き続き、「The Nature of Code」の内容を勉強します。
参考書籍
※Javaの勉強にもなるので一石二鳥です。