放物線上の振動
放物線上で円が振動します。放物線は2次関数(y = a * x * x)で表せます。この放物線の頂点は座標の原点にあります。放物線の頂点を画面の適切な位置(幅の中央で、下から10ピクセルの位置)に置くために、translate関数で座標を移動しています。translate(width/2.0, height-10); //座標原点の移動2次関数のx座標の値を-45から45の間で変化させ、y座標を計算します。 x座標の変化量dxは、xが-45より小さくなった時あるいは45より大きくなった時に正負を逆転させ、周期的な振動を作り出します。
if (x>45 || x<-45) { //x座標の動く範囲 dx = -dx; } x = x + dx; //x座標を動かす y = a * x * x; //二次関数の計算
クリックで停止⇔再開
【リスト Quadratic】 float angle; // 位置(角度) float x, y; float d = 10; // 円の直径 float a = -0.05; // 二次式の係数 float len = 60; // 軌跡の円の半径 float dx = 1; //x座標の変化量 void setup() { size(150, 150); //描画するための画面 fill(0); } void draw() { background(255); //画面の背景を白でクリア translate(width/2.0, height-10); //座標原点の移動 if (x>45 || x<-45) { //x座標の動く範囲 dx = -dx; } x = x + dx; //x座標を動かす y = a * x * x; //二次関数の計算 ellipse(x, y, d, d); }