スピログラフ Spirograph [見て楽しむ三角関数]
Scratchでスピログラフを描きます。スピログラフとはこのような定規型のものです。
By Alexei Kouprianov, CC 表示 2.5, Link
この定規を使うと、次のような絵が描けます。
これをScratch上で再現します。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
まず変数です。
スピログラフは大きな円の中を小さな円が回転して軌跡を描くので、それぞれの円に対応する「半径大」と「半径小」を使います。「幅」は小さな円の中心から描画点までの距離です。この値を大きくするとドーナツ本体が太くなり、値を小さくするとドーナツが細くなります。
次に本体です。
今回は曲線がなめらかになるように角度を0.5ずつ変化させます。また、角度が360度になったら終了するのではなく、永遠に繰り返します。半径の値によって終了する角度が異なるからです。
次に準備です。
特に変わった処理はありません。
次に計算です。X, Yともに長いのでどちらも2行に分けました。
式はWikipediaにあります。
\[x=(R-r)\cos(\theta)+p\cos\left(\frac{R-r}{r}\theta\right) \\
y=(R-r)\sin(\theta)-p\sin\left(\frac{R-r}{r}\theta\right) \]Rは変数「半径大」、rは変数「半径小」です。また、pは変数「幅」に対応します。θは角度です。
移動はいつもと同じです。
完成版はこちら。描画に時間がかかるので、ターボモードがおすすめです。
By Alexei Kouprianov, CC 表示 2.5, Link
この定規を使うと、次のような絵が描けます。
これをScratch上で再現します。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
まず変数です。
スピログラフは大きな円の中を小さな円が回転して軌跡を描くので、それぞれの円に対応する「半径大」と「半径小」を使います。「幅」は小さな円の中心から描画点までの距離です。この値を大きくするとドーナツ本体が太くなり、値を小さくするとドーナツが細くなります。
次に本体です。
今回は曲線がなめらかになるように角度を0.5ずつ変化させます。また、角度が360度になったら終了するのではなく、永遠に繰り返します。半径の値によって終了する角度が異なるからです。
次に準備です。
特に変わった処理はありません。
次に計算です。X, Yともに長いのでどちらも2行に分けました。
式はWikipediaにあります。
\[x=(R-r)\cos(\theta)+p\cos\left(\frac{R-r}{r}\theta\right) \\
y=(R-r)\sin(\theta)-p\sin\left(\frac{R-r}{r}\theta\right) \]Rは変数「半径大」、rは変数「半径小」です。また、pは変数「幅」に対応します。θは角度です。
移動はいつもと同じです。
完成版はこちら。描画に時間がかかるので、ターボモードがおすすめです。