demo
ドラッグしたところからパーティクルを生成しています。「c」キーを押すとクリアになります。
・参考
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
パーティクルの数がわからない
パーティクルの数が定数ではないときはどうすれば良いのでしょうか。vector(動的配列)を使います。
宣言の仕方
//可変長配列 vector<Particle> particle;
vectorの後にかっこをつけてクラス名を書けば、宣言できます。
クラスの説明は前のエントリを参照してください。
openFrameworksでクラスを作成して、個々のパーティクルに異なる大きさ、速度、色を設定する - not good but great
配列の操作
array.push_back(hoge);//hogeを末尾に追加 array.pop_back();//末尾の要素を削除 array.clear();//全ての要素をクリア
シンプルでわかりやすいです。
code
ofApp.cpp
void ofApp::mouseDragged(int x, int y, int button){ Particle p; p.setup(); p.position.x = x; p.position.y = y; particle.push_back(p); }
マウスドラッグして、座標をそのままパーティクルの中心に設定します。
クリアキーの設定
void ofApp::keyReleased(int key){ if(key == 'c'){ particle.clear(); } }
暖色系の色にする
void Particle::setup(){ //半径 radius = ofRandom(10, 25); //円の位置 velocity.x = ofRandom(-10, 10); velocity.y = ofRandom(-10, 10); //円の色 r = 255; g = ofRandom(91, 202); b = 64; }
redとblueを定数にして、greenの範囲を設定して乱数を作成すれば、暖色系っぽくなります。