一方向運動リストに戻る    印刷する

一方向の円運動…ひとつ(大きさ変化)

ひとつの円が、円周上を一定速度で, 大きさを変えながら運動します。動きは、ひとつ(軌跡なし)と同じですが、円の大きさが変化します。

円周上を1周する間サイズが増加し、次の1周でサイズを減少するようにします。2周、つまり720度の回転を1サイクルとします。角度angleが720を超えたら、angleをゼロにするとともに、円の大きさを初期値(ここでは2)に戻します。角度をdaずつ増やす中で、角度が0~360の時は円の大きさをdr(0.3)ずつ増加させ、360~720の時は減少させます。

Your browser does not support the canvas tag.

クリックで停止⇔再開
【リスト 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の間は減少
     }
}

arigat アットマーク acm.org / copyright © info