demo
Accelerating towards the mouse. from naoyashiga on Vimeo.
マウスでクリックした点にパーティクルが集まってきます。最初は点が中心から様々な方向に飛んでいっています。・参考
http://natureofcode.com/book/chapter-1-vectors/
code
void Particle::update(){ ofVec2f direction; ofVec2f acceleration; //velocity Max float vMax = 10; //compute direction direction = destination - position; //normalize the vector direction.normalize(); if (destination.x != 0 || destination.y != 0) { //scale direction.scale(0.5); acceleration = direction; velocity += acceleration; velocity.limit(vMax); position += velocity; }else{ position += velocity; } }
ポイントはパーティクルとマウスポインタとの距離の半分の大きさを持った速度ベクトルを毎回足していることです。マウスポインタに近づけば、速度ベクトルは小さくなっています。マウスポインタに収束せずにぐるぐる回っているところがわかりませんでした・・・。
https://github.com/naoyashiga/oF_Playground/tree/master/myChasing/src