直線の往復運動…ひとつ(速度変化)
ひとつの円が、水平に加速しながら往復運動します。速度が変化する部分以外は、ひとつ(一定速度)【リスト RStraight1】と同じです。 壁に当たったら速度を初期値(init)に設定し、加速度の方向を反転なおしています。
クリックで停止⇔再開
【リスト 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);
}