線の伸縮…加速的変化
線が伸長収縮します。 定速の線の伸縮と見た目は同じですが、こちらはsin関数の値を線の長さに使った加速的変化をします。定速の円運動をする円のy座標の変化だけを見ると、周期的な振動運動をしています。これを単振動と呼び、波の高さが低い時(角度が0、180度付近)、速く動きます。
translate(width/2, height/2); //座標原点を画面中央へ移動 angle = (angle + da) % 360; //角度をdaずつ増加、360を超えない x =len * sin(radians(angle)); //sinの値を計算 line(0, 0, x, y);
クリックで停止⇔再開
【リスト Elastic2】 float len; // 線の長さ float x, y; // 線のもう一方の座標 float angle; // float da = 4; //変化量 void setup() { size(150,150); len = width/2.0 - 5; //線の最大値 strokeWeight(5); // 線の太さ } void draw() { background(255); //画面の背景を白でクリア translate(width/2, height/2); //座標原点を画面中央へ移動 angle = (angle + da) % 360; //角度をdaずつ増加、360を超えない x =len * sin(radians(angle)); line(0, 0, x, y); }