外サイクロイド Epicycloid [見て楽しむ三角関数]
Scratchで外サイクロイドを描きます。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。上のWikipediaのリンクを見るとわかりますが、外サイクロイドは中心に大きな円があり、その外周を小さな円が回転する軌跡になっています。このため、中心の円の「半径大」と回転する円の「半径小」の二つの半径を変数として持っています。この二つの変数はスライダー表示にして画面上で変更できるようにしています。角度は三角関数に与える値です。XとYは曲線の座標に使います。
次に本体です。角度を0.5度ずつ変化させながら描画し続けます。終了条件がないのは、開始座標に戻ってくる条件(=終了条件)が半径大と半径小の値によって異なるからです。
次に準備です。変数の初期設定、ペンの設定、開始座標の計算、開始座標への移動を行なっています。
式はこうなっています。Rは「半径大」、rは「半径小」、θは角度です。
\[ x=(R+r)\cos(\theta)-r\cos\left(\frac{R+r}{r}\theta\right) \\
y=(R+r)\sin(\theta)-r\sin\left(\frac{R+r}{r}\theta\right) \] この式はスピログラフによく似ています。見比べてみてください。
外サイクロイドの式をプログラムにすると次のようになります。X座標の計算とY座標の計算はそれぞれ一行に書くこともできますが、画面からはみ出すので分割しています。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。上のWikipediaのリンクを見るとわかりますが、外サイクロイドは中心に大きな円があり、その外周を小さな円が回転する軌跡になっています。このため、中心の円の「半径大」と回転する円の「半径小」の二つの半径を変数として持っています。この二つの変数はスライダー表示にして画面上で変更できるようにしています。角度は三角関数に与える値です。XとYは曲線の座標に使います。
次に本体です。角度を0.5度ずつ変化させながら描画し続けます。終了条件がないのは、開始座標に戻ってくる条件(=終了条件)が半径大と半径小の値によって異なるからです。
次に準備です。変数の初期設定、ペンの設定、開始座標の計算、開始座標への移動を行なっています。
式はこうなっています。Rは「半径大」、rは「半径小」、θは角度です。
\[ x=(R+r)\cos(\theta)-r\cos\left(\frac{R+r}{r}\theta\right) \\
y=(R+r)\sin(\theta)-r\sin\left(\frac{R+r}{r}\theta\right) \] この式はスピログラフによく似ています。見比べてみてください。
外サイクロイドの式をプログラムにすると次のようになります。X座標の計算とY座標の計算はそれぞれ一行に書くこともできますが、画面からはみ出すので分割しています。
移動はいつも通りです。
完成版はこちら。
コメント 0