数学が分からないプログラマのコサイン関数
前振り
高校生の頃、数学は酷い点数だったし、大人になっても難しい数学に関わったりしていない。
だから「三角関数」と聞いても「サイン、コサイン、タンジェント」という言葉ぐらいしか覚えていない。
それでもプログラミングをしていると、ヤツらの名前を聞く事になる。
一番見かけるのがcos()(コサイン関数)だ。一体何をする関数なんだろう。
大雑把な結論
書式は cos(x) 。xには数値(整数や小数)を入れる。
戻り値は数値。-1〜1ぐらいの数値が返ってくる。
(言語によって違うかもしれないけど、大体はこの形式。)
もう少し頑張って調べてみる
高校生の頃をもう少し思い出してみる。コサインというのは、三角形の辺の長さや角度を計算するのに使っていた気がする。
では cos(x) のxは何なのか、戻り値は何なのか。
xには角度を指定する。ただし「度」ではなく「ラジアン」という単位の角度だ。
1ラジアンは約57.3度。90度は約1.57ラジアン。180度は約3.14ラジアン。
「数字がなんか中途半端すぎない!?」と思った方には、「180度はピッタリπ(3.1415…)ラジアン」と言っておく。
このxの角度を使って、直角三角形を思い描いてみる。
底辺をたいら(水平)にして、三角の左右どちらかの角度がx、もう一つが直角(90度)。上の角は…まぁ気にしない。
この三角形には斜めの線がひとつだけある。その斜めの線の長さを1とすると、底辺の長さ(三角形の横幅とも言える)がコサインだ。
ざっくり言うと、「cos(x)」は角度xの直角三角形の横幅の長さを表している。
納得いかない
「角度xが120度とか500度だったら三角形にならないじゃないか!」
おっしゃる通り。でもコサイン関数は大きな数値を指定してもエラーにはならない。
私の説明がよろしくないだけで、三角形は作れる。
上手く言い表せないので、この図を見て納得してもらうしかない。(手書きでごめんね。あと画像小さくできない。) 追記:PCを使ったら画像を小さくできました。
使い道
数値xから-1〜1ぐらいの数値を作る関数。これは何に使うのか?
何だろうね?テストに出るかもしれないから勉強しているだけだし。
ゲームやアニメを作るのに使うって噂を聞いたぞ!って方はもっと詳しいサイトを当たってね。
https://www.ajimatics.com/entry/2019/01/11/092529
あとがき
・「サイン関数とタンジェント関数は?」
もうお腹いっぱいなので勘弁してください…。
どうせ数値から数値を作る関数なんでしょ(雑)。
・数式アレルギーなので「θ」とか見かけると「カッコつけやがって読めないんだよおお!このフグのクチバシがぁ!」とキレ散らかしてしまうので調べるのは大変な作業でした。
・文章を書く時えらそーな文体になっちゃうの何でだろう〜。
この記事が気に入ったらサポートをしてみませんか?