一方向の円運動…ひとつ(大きさ変化)
ひとつの円が、円周上を一定速度で, 大きさを変えながら運動します。動きは、ひとつ(軌跡なし)と同じですが、円の大きさが変化します。円周上を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の間は減少
}
}