SSブログ

歯車 Gear Curve [見て楽しむ三角関数]

Scratch歯車を描きます。

[歯車]

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

最初に変数です。今回は倍率は固定で、歯車の歯の数を可変にしています。tanhは関数の計算結果を保持しておくための変数です。また、bは式の中で出てくる定数で、準備処理の中で10に固定しています。

[変数]

次に本体です。角度を0度から360度まで変化させながら計算、移動を繰り返すとこの曲線が描画できます。

[本体]

次に準備です。ペンの設定、変数の初期化、開始座標の計算、開始座標への移動を行なっています。

[準備]

式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ r=a+\frac{1}{b}\tanh(b\sin(n\theta)) \] tanhは双曲正接関数です。bを大きくすると歯の高さが小さくなります。今回は10に固定していますが、スライダ表示にして変化させてみるのも面白いですよ。

この式をプログラムにすると次のようになります。上の式の「a」は1に固定、いつも曲線の大きさの調整に使っている「倍率」変数は上の「準備」処理で160に固定しています。

[計算]

tanhはWikipediaで次のように定義されています。eはネイピア数です。
\[ \tanh(\theta)=\frac{1-e^{-2\theta}}{1+e^{-2\theta}} \] これはScratchでは提供されていないので、自分でブロックを作って定義します。

[tanh]

計算結果はtanh変数に保存しておき、計算で使っています。

移動はいつも通りです。

[移動]

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

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