数学が分からないプログラマのコサイン関数

前振り

高校生の頃、数学は酷い点数だったし、大人になっても難しい数学に関わったりしていない。
だから「三角関数」と聞いても「サイン、コサイン、タンジェント」という言葉ぐらいしか覚えていない。
それでもプログラミングをしていると、ヤツらの名前を聞く事になる。
一番見かけるのがcos()(コサイン関数)だ。一体何をする関数なんだろう。

大雑把な結論

書式は cos(x) 。xには数値(整数や小数)を入れる。
戻り値は数値。-1〜1ぐらいの数値が返ってくる。
(言語によって違うかもしれないけど、大体はこの形式。)

もう少し頑張って調べてみる

高校生の頃をもう少し思い出してみる。コサインというのは、三角形の辺の長さや角度を計算するのに使っていた気がする。
では cos(x) のxは何なのか、戻り値は何なのか。

xには角度を指定する。ただし「度」ではなく「ラジアン」という単位の角度だ。
1ラジアンは約57.3度。90度は約1.57ラジアン。180度は約3.14ラジアン。
「数字がなんか中途半端すぎない!?」と思った方には、「180度はピッタリπ(3.1415…)ラジアン」と言っておく。

このxの角度を使って、直角三角形を思い描いてみる。

画像1


底辺をたいら(水平)にして、三角の左右どちらかの角度がx、もう一つが直角(90度)。上の角は…まぁ気にしない。
この三角形には斜めの線がひとつだけある。その斜めの線の長さを1とすると、底辺の長さ(三角形の横幅とも言える)がコサインだ。

ざっくり言うと、「cos(x)」は角度xの直角三角形の横幅の長さを表している。

納得いかない

「角度xが120度とか500度だったら三角形にならないじゃないか!」
おっしゃる通り。でもコサイン関数は大きな数値を指定してもエラーにはならない。
私の説明がよろしくないだけで、三角形は作れる。
上手く言い表せないので、この図を見て納得してもらうしかない。(手書きでごめんね。あと画像小さくできない。) 追記:PCを使ったら画像を小さくできました。

画像2

画像3

画像4

使い道

数値xから-1〜1ぐらいの数値を作る関数。これは何に使うのか?
何だろうね?テストに出るかもしれないから勉強しているだけだし。

ゲームやアニメを作るのに使うって噂を聞いたぞ!って方はもっと詳しいサイトを当たってね。
https://www.ajimatics.com/entry/2019/01/11/092529

あとがき

・「サイン関数とタンジェント関数は?」
もうお腹いっぱいなので勘弁してください…。
どうせ数値から数値を作る関数なんでしょ(雑)。

・数式アレルギーなので「θ」とか見かけると「カッコつけやがって読めないんだよおお!このフグのクチバシがぁ!」とキレ散らかしてしまうので調べるのは大変な作業でした。

・文章を書く時えらそーな文体になっちゃうの何でだろう〜。


この記事が気に入ったらサポートをしてみませんか?