振動運動リストに戻る    印刷する

線の伸縮…加速的変化

線が伸長収縮します。 定速の線の伸縮と見た目は同じですが、こちらは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);

Your browser does not support the canvas tag.

クリックで停止⇔再開
【リスト 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);
}

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