一方向の円運動…ひとつ(大きさ変化)
ひとつの円が、円周上を一定速度で, 大きさを変えながら運動します。動きは、ひとつ(軌跡なし)と同じですが、円の大きさが変化します。円周上を1周する間サイズが増加し、次の1周でサイズを減少するようにします。2周、つまり720度の回転を1サイクルとします。角度angleが720を超えたら、angleをゼロにするとともに、円の大きさを初期値(ここでは2)に戻します。角度をdaずつ増やす中で、角度が0~360の時は円の大きさをdr(0.3)ずつ増加させ、360~720の時は減少させます。
クリックで停止⇔再開
【リスト Circle3】 float angle; // 位置(角度) float da = 2; // 角度の変化量 float x, y; float d = 1; // 円の直径 float dd = 0.3; // 半径の変化量 float len = 60; // 軌跡の円の半径 void setup() { size(150, 150); //描画するための画面 fill(0); } void draw() { background(255); //画面の背景を白でクリア x = len * cos(radians(angle)) + width/2.0; y = len * sin(radians(angle)) + height/2.0; ellipse(x, y, d, d); if (angle > 720) { //1サイクル終わったら angle = 0; //初期値に戻す d = 1; } else { angle = angle + da; if(angle <360 && angle>0) { d = d+dd; } // 0-360の間は増加 else if(angle >=360 && angle<=720) { d = d-dd; } // 360-720の間は減少 } }