歯車 [見て楽しむ三角関数]
Scratchで歯車を描きます。
前回の円は、半径を固定して角度だけを0から360まで変化させて描画しました。今度は半径も変化させながらスプライトを動かしてみます。基準となる半径にcos関数を掛けると、円を基準線としてスプライトが波打ちながら移動するので歯車になります。
まず変数です。
「半径の基準」は固定値で、歯車の中心線になります。「歯の高さ」は中心線からの振れ幅です。
本体は前回の円と同じです。準備をして角度を変えながら計算、移動を繰り返します。
次に準備です。
「歯の数」と「歯の高さ」はここでは20で固定していますが、完成版ではスライダー表示にして変更できるようにしています。Scratchの画面ではY軸の範囲は-180から180ですので、計算した半径が180を越えると線がはみ出してしまいます。このため、「半径の基準」を「180 - 歯の高さ」としています。
次は計算です。
円の時は半径は固定でしたが、今回は半径をcos関数にしたがって変化させます。cos関数の計算結果は、下の表のように0から1の間の値になりますので、そのまま使うと画面上では変化がわかりません。そのため、歯の高さを掛けて波が見えるようにしています。
一般的にcos関数にはラジアンを使いますが、Scratchでは単なる「角度」を使います。
その後、計算した半径をもとにX座標とY座標を計算します。最後に、一色だと単調なので色を半径に応じて変化させます。
移動は前回と同じです。
計算された座標にしたがってスプライトを移動すると歯車のできあがり。
完成したプロジェクトはこちら。上のコードに少し手を加えていますが、計算や描画でやっていることは同じです。
前回の円は、半径を固定して角度だけを0から360まで変化させて描画しました。今度は半径も変化させながらスプライトを動かしてみます。基準となる半径にcos関数を掛けると、円を基準線としてスプライトが波打ちながら移動するので歯車になります。
まず変数です。
「半径の基準」は固定値で、歯車の中心線になります。「歯の高さ」は中心線からの振れ幅です。
本体は前回の円と同じです。準備をして角度を変えながら計算、移動を繰り返します。
次に準備です。
「歯の数」と「歯の高さ」はここでは20で固定していますが、完成版ではスライダー表示にして変更できるようにしています。Scratchの画面ではY軸の範囲は-180から180ですので、計算した半径が180を越えると線がはみ出してしまいます。このため、「半径の基準」を「180 - 歯の高さ」としています。
次は計算です。
円の時は半径は固定でしたが、今回は半径をcos関数にしたがって変化させます。cos関数の計算結果は、下の表のように0から1の間の値になりますので、そのまま使うと画面上では変化がわかりません。そのため、歯の高さを掛けて波が見えるようにしています。
cos | cos(0) | cos(30) | cos(60) | cos(90) | cos(120) | cos(150) | cos(180) | cos(210) | cos(240) | cos(270) | cos(300) | cos(330) | cos(360) | 値 | 1 | 0.87 | 0.5 | 0 | -0.5 | 0.87 | -1 | -0.87 | -0.5 | 0 | 0.5 | 0.87 | 1 |
---|
一般的にcos関数にはラジアンを使いますが、Scratchでは単なる「角度」を使います。
その後、計算した半径をもとにX座標とY座標を計算します。最後に、一色だと単調なので色を半径に応じて変化させます。
移動は前回と同じです。
計算された座標にしたがってスプライトを移動すると歯車のできあがり。
完成したプロジェクトはこちら。上のコードに少し手を加えていますが、計算や描画でやっていることは同じです。
コメント 0