双曲正接らせん Hyperbolic Tangent Spiral [見て楽しむ三角関数]
Scratchで双曲正接らせんを描きます。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。tanhは三角関数の計算結果を保持するための変数です。「大きさ」と「k」はスライダー表示にして画面上で変更できるようにしています。
次に本体です。角度を-450度から450度まで変化させながら計算、移動を繰り返すとこの曲線を描画できます。
次に準備です。ペンの設定、変数の設定、開始座標の計算、開始座標への移動を行なっています。
式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ r=a\tanh(k\theta) \] この式をプログラムにすると次のようになります。
最初に\(\tanh(\theta)\)から半径を計算し、その結果からX座標とY座標を計算しています。\(\tanh\)は双曲正接関数で、今回はこのサイトにある定義を使っています。
\[ \tanh(\theta)=\frac{e^{\theta}-e^{-\theta}}{e^{\theta}+e^{-\theta}} \] \(e\) はネイピア数です。Scratchにはこの関数は備わっていないので、自分でブロックを定義します。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。tanhは三角関数の計算結果を保持するための変数です。「大きさ」と「k」はスライダー表示にして画面上で変更できるようにしています。
次に本体です。角度を-450度から450度まで変化させながら計算、移動を繰り返すとこの曲線を描画できます。
次に準備です。ペンの設定、変数の設定、開始座標の計算、開始座標への移動を行なっています。
式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ r=a\tanh(k\theta) \] この式をプログラムにすると次のようになります。
最初に\(\tanh(\theta)\)から半径を計算し、その結果からX座標とY座標を計算しています。\(\tanh\)は双曲正接関数で、今回はこのサイトにある定義を使っています。
\[ \tanh(\theta)=\frac{e^{\theta}-e^{-\theta}}{e^{\theta}+e^{-\theta}} \] \(e\) はネイピア数です。Scratchにはこの関数は備わっていないので、自分でブロックを定義します。
移動はいつも通りです。
完成版はこちら。
コメント 0