Skip to main content

三角関数

 三角関数とは、平面三角法における、角度の大きさ線分の長さ関係を記述する関数の族、およびそれらを拡張して得られる関数の総称である。鋭角を扱う場合、三角関数の値は対応する直角三角形の二辺の長さの比(三角比)である。三角法に由来する三角関数という呼び名のほかに、単位円を用いた定義に由来する円関数という呼び名がある。

IMAGE:image.png

ONE

 簡単にいうと、上記の図で

ANGLE,
X角度 ANDθ Yが知っていれば、成分 COMPONENTSpx と py の数値は何? 成分 px と py が知っていれば、角度 θ はどうなる?

この関係が「三角関数」で求めることができる。

「ラジアン」とは

 三角法に由来する三角関数という呼び名のほかに、単位円を用いた定義に由来する円関数という呼び名がある。単位円とは、半径が 1 の円のことである。

IMAGEimage.png

 円の周囲は円の周囲の長さは 2πr である前提で、今回の半径 r の長さは「1」であるため、単位円の周囲はちょうど であること証明する。また、円は「度」で分割すると、0度から360度まで表すことができる。従って、次の関係を作ることができる:2π=360度

IMAGEimage.png

 ここで「ラジアン」という新しい角度の測り方を考えることができる。360度は2πであるとしたら、360度 は  ラジアンであるとしたら、「度」から「ラジアン」へ変換にしたいなら:

image.png

ここで「rad」は「ラジアン」(radians)にし、「deg」は「度」(degrees)である。また、ラジアンから度に変換したいなら:

IMAGE

image.png

 の逆計算もできる。例えば、90度をラジアンに変換すると:

image.png

 また、ラジアンから度に変換したいなら90度は約1.57079ラジアンになる。具体的に、図でみると

IMAGEimage.png

 の逆計算もできる。Unityの多くの関数は「度」(degree)を使うが、これから学ぶ(復習?)三角関数は必ず「ラジアン」を使うので、注意してください。また、UnityのAPIの中でラジアンと度を変換するための定数がすでに定義されている。

// 度(degree)からラジアン(radian)へ変換する場合
float radian = degree * Mathf.Deg2Rad;
// ラジアン(radian)から度(degree)へ変換する場合
float degree = radian * Mathf.Rad2Deg;

 では、単位円の上にある点 p=(px,py) を配置してみましょう:

image.png

p を自由に選んだため、px と py の長さがわかるはず。ここで角度を求めたいなら、 p までの弧の長さを測れば良いでしょう!

image.png

つまり、ある点 p の座標 (px, py) がわかるし、弧の長さ θ もわかるので関係性を作ることができる。その関係性は:

image.png