読者です 読者をやめる 読者になる 読者になる

not good but great

プログラミング、アート、映画・本の感想について書きます。

ベクトルを使って各パーティクルに力を加える

demo

ベクトル場を参考にした

yoppaさんのベクトル場のスライドを拝見しました。自分にとってはやったことないことだったので、コードを理解することに苦労しています。

パーティクルが力を受けている

コードを読んで、自分なりにベクトルを使って何か作ってみることにしました。そこでマウスポインタに各パーティクルが引きつけられるというものを作ってみました。各グリッド上に配置された点が、指定の円の中に入ると、力を受けて、移動するというものです。

・参考
openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム | yoppa org

code

void vectorField::draw(){
    float fx,fy;
    for (int i = 0; i < field.size(); i++) {
        //グリッド上の点
        fx = field[i].x;
        fy = field[i].y;
        
        //方向ベクトルを作成
        ofVec2f directionVec = mousePoint - field[i];
        //単位ベクトルにする
        directionVec.normalize();
        //受ける力
        float strength = 20;
        float strongness = strength * (1.0f - (distance[i] / radius));
        
        //色
        ofSetColor(0, 200, 0);
        if(distance[i] < radius){
            ofCircle(fx + directionVec.x * strongness, fy + directionVec.y * strongness, 1 + strongness / 100);
        }else{
            ofCircle(field[i].x, field[i].y, 1);
        }
    }
}

vimeoに保存できなかった

oFの実行画面をofxQTVideoSaverを使って動画で保存し、Vimeoにあげたかったのですが、コンパイルが通らないので諦めました。
https://github.com/jamezilla/ofxQTVideoSaver
openFrameworksで動画を作成する方法 - 強火で進め

ProjectGeneratorはCPUを食う?

oFを使っていたらMacがファンファン鳴るので、アクティビティモニタを使ってCPU使用率を見てみました。
MacのCPU使用率やメモリ使用率を確認する方法
そうするとoFのProjectGeneratorがかなりCPUを食っていたので、すぐに停止しました。そうしたらファンファン鳴るのは止みました。