Jerabek Curve [見て楽しむ三角関数]
ScratchでJerabek Curveを描きます。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。kは式に出てくる定数です。値を変えると曲線も変わります。その他はいつもと変わりありません。
次に本体です。角度を0度から360度まで変化させるとこの曲線が描けます。線がなめらかになるように0.1度ずつ角度を変えています。小数を使って計算すると角度の値が厳密に360にはならないので、繰り返しの脱出条件には不等号を使って「角度が360度を超えたら」としています。(詳しくはこちら。)
次に準備です。いつもほとんど同じです。変数の準備、ペンの準備、開始座標の計算を行い、開始座標に移動しています。
式はこうなっています。rは半径、aは倍率(大きさ)、kは定数、θは角度です。
\[ r=a\frac{k\cos(\theta)-1}{k-\cos(\theta)} \] この式をプログラムにすると次のようになります。最初に半径を計算し、半径と角度からX座標とY座標を計算しています。最後にX座標を左にずらし、曲線が描画領域の中心にくるようにしています。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。kは式に出てくる定数です。値を変えると曲線も変わります。その他はいつもと変わりありません。
次に本体です。角度を0度から360度まで変化させるとこの曲線が描けます。線がなめらかになるように0.1度ずつ角度を変えています。小数を使って計算すると角度の値が厳密に360にはならないので、繰り返しの脱出条件には不等号を使って「角度が360度を超えたら」としています。(詳しくはこちら。)
次に準備です。いつもほとんど同じです。変数の準備、ペンの準備、開始座標の計算を行い、開始座標に移動しています。
式はこうなっています。rは半径、aは倍率(大きさ)、kは定数、θは角度です。
\[ r=a\frac{k\cos(\theta)-1}{k-\cos(\theta)} \] この式をプログラムにすると次のようになります。最初に半径を計算し、半径と角度からX座標とY座標を計算しています。最後にX座標を左にずらし、曲線が描画領域の中心にくるようにしています。
移動はいつも通りです。
完成版はこちら。