往復運動リストに戻る    印刷する

直線の往復運動…ひとつ(速度変化)

ひとつの円が、水平に加速しながら往復運動します。
速度が変化する部分以外は、ひとつ(一定速度)【リスト RStraight1】と同じです。 壁に当たったら速度を初期値(init)に設定し、加速度の方向を反転なおしています。

Your browser does not support the canvas tag.

クリックで停止⇔再開
【リスト RStraight4】
float d = 10; // 円の直径
float x = d/2; // 位置(x座標)
float init = 0.2; //速度初期値
float s = init; // 移動速度
float a = 0.25; // 加速度

void setup() {
  size(150, 150);   //描画するための画面
  fill(0);
}

void draw() { 
     background(255);   //モニタ画面の背景を白でクリア   
     s = s+a;
     x = x+s;     
     if(x>width-d/2){  //右の壁より右に来た
         x = width-d/2;  //右の壁に接する位置に置く
         s = -init; //左へ進む、速度初期化
         a = -a; //加速度の方向を逆転
      }else if(x<d/2){   //左の壁より左に来た
         x = d/2;  //左の壁に接する位置に置く
         s = init;  //右へ進む、速度初期化
         a = -a; //加速度の方向を逆転
      }
     ellipse(x, height/2, d, d);
}

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