といとい

Scratchから世界観を描くブログ。

Scratchで三角関数を使ってみる -01

sin を使ってみよう

sin をまずは使ってみる。

実験 1

f:id:yosuke1:20210527121415g:plain
sin を X 軸方向へ移動する

Gif 画像なので動きがカクカクしていますが、実際には滑らかに動作しています。

f:id:yosuke1:20210527122553p:plain
sin を X 軸方向へ移動する

これがコードです。変数「θ」を作り、θ を 1 ずつ変えて 360 回繰り返しています。しかしこれだと 360 回ちょうどになるとき、ピタッと X 座標が 0 になりません。

実験 2

f:id:yosuke1:20210527124113g:plain
sin を X 軸方向へ移動する

今度はどうでしょうか?
360 回繰り返した後、X 座標を見てみるとピタッと 0 の位置になっています。

f:id:yosuke1:20210527124340p:plain
sin を X 軸方向へ移動する

先ほどと同じように見えます。ただプログラムの順番を変えただけです。よく見ると、「θ を 1 ずつ変える」が 360 回繰り返すの中で一番最初に実行されるようにしました。

実験 3

f:id:yosuke1:20210529004214g:plain
sin を X 軸方向へ移動する

sinθ に対し、θ を 2 ずつ変えるようにしてみました。

f:id:yosuke1:20210529004458p:plain
sin を X 軸方向へ移動する

どうやら θ の数値を大きくすれば速く進むようになりそうです。

実験 4

f:id:yosuke1:20210601174548g:plain
sin を Y 軸方向へ移動する

sin を使って今度は Y 軸方向へ移動させてみました。
たった X 軸方向から Y 軸方向へ変えただけでもなんだかワクワクしてきました。

f:id:yosuke1:20210601174940p:plain
sin を Y 軸方向へ移動する

プログラムは実験 3 で行ったものを利用して、 Y 軸方向へ移動するようにしただけです。

cos を使ってみよう

cos を使っていこう。

実験 5

f:id:yosuke1:20210602121623g:plain
cos を Y 軸方向へ移動する

ここまでは実験 4 と変化なさそうに見えますね。

f:id:yosuke1:20210602122215p:plain
cos を使って Y 軸方向へ移動する

実験 4 のコードを sin から cos に変えただけです。これではなんだかわかりづらいので比較してみましょう。

実験 6

f:id:yosuke1:20210602123013g:plain
sin と cos を比較してみる

ちょうちょとこうもりを比較してみると、少しだけずれているように見えます。どちらも Y 座標は 0 からなのに、スタートする位置が違うようです。

f:id:yosuke1:20210602123224p:plain
ちょうちょのコード

こちらがちょうちょのコードで、 sin に設定し、X 座標はこうもりと重ならない位置に調整します。

f:id:yosuke1:20210602123317p:plain
こうもりのコード

こちらがこうもりのコードで、 cos に設定し、 X 座標はちょうちょと重ならない位置に調整します。


すこし面白くなってきましたね(^^)/

実験 7

f:id:yosuke1:20210604123214g:plain
sin とcos を比較してみる

今度は X 座標方向へ移動させてみましょう。動きを見てみると、実験 6 と同じになっています。

シューティングゲームに使えそうな気がしませんか?

f:id:yosuke1:20210604124026p:plain
ちょうちょのコード

ちょうちょのコードです。最初に表示される位置 ( X 座標を ~ 、Y 座標を ~ にする ) と、X 方向へ移動したい ( X 座標を ~ にする ) ので、実験 6 と少し違います。

f:id:yosuke1:20210604124427p:plain
こうもりのコード

こうもりのコードです。こちらもちょうちょのコードと同じく、最初に表示させる位置と、X 方向へ移動させていきましょう。


まとめ

sin を使って動きを行き来させたいときに便利です。ぜひトライしてみてください。