歯車 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は関数の計算結果を保持しておくための変数です。また、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変数に保存しておき、計算で使っています。
移動はいつも通りです。
完成版はこちら。