SSブログ

内トロコイド Hypotrocoid [見て楽しむ三角関数]

Scratch内トロコイドを描きます。式は前回の外トロコイドや前々回の内サイクロイド、その前の外サイクロイド、以前のスピログラフに似ています。

[内トロコイド]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。上のWikipediaのリンクを見るとわかりますが、内トロコイドは中心の定円の内側を動円が回転する軌跡になっています。このため、外側の円の「定円半径」と回転する円の「動円半径」、さらに動く円の中心から描画点までの「描画点半径」を変数として持っています。これら三種類の半径はスライダー表示にして画面上で値を変更できるようにしています。値を変えると曲線の形が変わります。

[変数]

次に本体です。角度を0.5度ずつ変化させながら描画を続けます。繰り返しの終了条件がない理由は外トロコイドと同じで、スライダーで指定する各半径の値によって終了条件が変わるからです。描画を止めるには、旗の右にある赤いボタンを押してください。描画には時間がかかるのでターボモードがお勧めです。

[本体]

次に準備です。ペンの準備、変数の準備、開始点の計算、開始点への移動を行なっています。

[準備]

式はこうなっています。Rは「定円半径」、rは「動円半径」、dは「描画点半径」、θは角度です。
\[ x=(R-r)\cos(\theta)+d\cos\left(\frac{R-r}{r}\theta\right) \\
y=(R-r)\sin(\theta)-d\sin\left(\frac{R-r}{r}\theta\right) \] この式をプログラムにすると次のようになります。

[計算]

移動はいつも通りです。

[移動]

完成版はこちら
nice!(1)  コメント(0) 
共通テーマ:日記・雑感

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。