【スクラッチで三角関数】サイン・コサイン・タンジェントとは

ブロックの応用テクニック
Scratch星人
Scratch星人

今回の記事は、何やら難しそうな三角関数についてです。

スクラッチのプロフィールにコメントを貰いました。

「三角関数について詳しく教えてもらいたいです。」

Scratch星人
Scratch星人

難しい要望が来てしまいました・・。

詳しく解説出来るか微妙ですが、Scratch星人の視点で「三角関数」を紹介しますので、ぜひ作品に活かしてみてください。

三角関数とは

上の図のようなものです。(・・?)
サイン(sin)、コサイン(cos)、タンジェント(tan)という用語で表されます。

ひと昔前は中学校で習う内容でしたが、今は高校1~2年生くらいに習うようです。

実は、Scratch星人も詳しく説明できるほど、三角関数のことを分かっていません。
(日常生活で使う場面が無いんですよね・・・)

調べてみたところ、ゲーム作りをする際に重要な考え方になるようです。

Scratch星人
Scratch星人

「スクラッチもゲーム作るよ?」と思ったかもしれませんが、それについては後ほど解説します。

  • 直角三角形に利用する
  • サインとコサインは辺の長さ
  • タンジェントを応用して角度を求める

これらは調べると出てくる情報なのですが、いまいちピンときません。
そこで、とてもタメになるサイトを発見したのでご紹介します。

サイトの内容全部がタメになるのですが、その中でも、こちらの表が「なるほど!」となるので、掲載させて頂きます。

「プチメタ3.0」さんのサイト

この表の「なるほど」の理由は、次の項目で紹介します。

スクラッチで三角関数を見てみよう

サンプルプロジェクトを用意したので、開いてみてください。

旗をクリックしてスタートすると上の画像のような緑の三角形が現れます。
この三角形は底辺が400、高さが200、ネコ側の角度不明の直角三角形です。

三角形の角度を求める

直角三角形の底辺と高さが分かっているので、atan(アークタンジェント)というブロックを使うことで、ネコ側の角度を求めることが出来てしまいます。

ここで、先ほどの表を見てみましょう。
200÷400=0.5なので、26~27の間の角度という事が分かります。

コウモリの方を向いたネコの向きを求める

スクラッチには「~~へ向ける」という便利なブロックがあります。
「Batへ向ける」ことで、向きは63°になります。

その1はそのまま向きを言っています。
その2はatanを使って向きを求めています。

ここでも表を見てみましょう。

このように、よく分からない時は、表を見ることで、結果が正しいことが分かります。

・・話を戻します。

では、もしも「Batへ向ける」というブロックが無かった場合、向きを求めることは出来ないのでしょうか?

答えは、出来ます!

「90 – 三角形の角度」としてあげることで、向きを求めることが出来ますね。

ネコの位置からコウモリの位置へ移動する

ここでも、スクラッチの便利ブロックが登場します。
「~秒で~へ行く」です。

それでは、このブロックが無かった場合の移動方法を考えてみます。

サインとコサインが登場しました・・。
何やら難しいですね。

x座標とy座標の2D世界では、上下(y方向)と左右(x方向)に数値を指定して移動できますが、斜めに移動する場合は、上のブロックのようにx座標の移動とy座標の移動を繰り返すことで、実現しています。

そのためにサインとコサインを使うわけです。

Scratch星人
Scratch星人

ここまでの説明で何かに気が付きませんか?

そうです。

スクラッチでは、便利ブロックのおかげで三角関数の出番がなかなか無いのです。

スクラッチで使える三角関数のレシピ

三角関数をスクラッチで使う際には、まずは以下の3つを試してみて下さい。

上下にゆらゆら左右に移動

波の振れ幅は、上下の高さで、波の長さは細かさです。
言葉では分かりづらいかもしれませんので、変数の値を変えて色々動きを確認してみて下さい。

角度を変えると、動きが速くなったりしますが、数値によっては、変な動きになるので、変更する場合は注意してください。

左右にゆらゆら上下に移動

ひとつ前の「上下にゆらゆら左右に移動」との違いは、コサイン(cos)を使っていることです。

そうは言っても、ここはサイン(sin)にしても動きます。

なんで?というのは、混乱するので、あまり深く考えない方がいいかもしれません”(-“”-)”

円を描くように動かす

これは面白いですよね。

変数の値を変えながら、様々な円を描いてみて下さい。

まとめ

三角関数について書いてみました。
読んでいて気付いたかもしれませんが、Scratch星人も、しっかりと理解は出来ていません。。

ただ、先ほどお伝えしたように、スクラッチは便利ブロックのおかげで、自らが三角関数を使う場面はほとんどありません。

しかし、便利ブロックが動く裏で三角関数を利用して処理を行っているという事は覚えておいた方がいいかもしれません。

最後に紹介した3つのレシピを自分なりにアレンジして楽しんでみて下さい(*^-^*)

コメント

タイトルとURLをコピーしました