みさご解体新書

ラジアン

解説/アルゴリズム

Math.cos(180); // 度の角度を入れてはいけない
Math.cos(Math.PI); // ラジアンを入れる

Math.cos や Math.sin のような関数では、0 ~ 360 度の角度ではなくラジアンという角度の単位が使用される。

円の半径に等しい長さの弧の中心に対する角度が1ラジアンとなり、円周の長さは直径 × 円周率なので、円の一周は2πラジアン(6.283185...)となる。

時計は 1 周で 12 や 24、普段使用している角度は 1 周で 360 になるが、ラジアンでは 1 周が 6.283185...という人間にとっては扱いやすいとはいえない値を使用することになる。

Math.PI; // わざわざ3.14159...と入力する必要はない

ただ実際には、Math.PIで π(円周率)の値が取得できるので、この定数を利用すればそれほど複雑な指定にはならない。

度(角度) ラジアン(角度)
360
180 π
90 π/2
45 π/4

180度 = πラジアンということを覚えておけば、90 度は π の半分だなーのように、そこを規定に計算がしやすくなる。

任意の角度をラジアンに変換する

180 度や 90 度のような切りのいい度ではなく、たとえば 23 度や 34.5 度のような任意の角度に対応するラジアンを求めたい場合がある。

度(角度) ラジアン(角度)
180 π
1 π/180

180度 = πラジアンの両辺を180で割ると下記の計算結果が得られる。

1度 = π/180ラジアン

この式は非常に便利で、たとえば 23 度の角度に対応するラジアンを求めたい場合は両辺に 23 をかければよい。

23度 = 23 × π/180ラジアン

つまり任意の角度をラジアンに変換したい場合は下記のように計算する。

deg度 = deg × π/180ラジアン

const deg = 23; // 23度
const rad = (deg * Math.PI) / 180; // 角度をラジアンに変換

実際にプログラムで書いた例。

任意のラジアンを角度に変換する

度(角度) ラジアン(角度)
180 π
180/π

今度は逆に任意のラジアンから角度に変換したい場合について。

πラジアン = 180度の両辺をπで割ると下記の計算結果が得られる。

1ラジアン = 180度/π

この式から、任意のラジアン rad を角度に変換したい場合は下記のように計算すればよい。

rad × 180度/π

const rad = 23; // 23ラジアン
const deg = (rad * 180) / Math.PI; // ラジアンを角度に変換

実際にプログラムで書いた例。

変換の計算を定数化、あるいは関数化する

const TO_RAD = Math.PI / 180; // 1度のときのラジアン
const TO_DEG = 180 / Math.PI; // 1ラジアンのときの角度

23 * TO_RAD; // 23度に対応するラジアン
23 * TO_DEG; // 23ラジアンに対応する角度
function toRadian(deg: number): number {
  return (deg * Math.PI) / 180;
}

function toDegree(rad: number): number {
  return (rad * 180) / Math.PI;
}

console.log(toRadian(23)); // 23度に対応するラジアン
console.log(toDegree(23)); // 23ラジアンに対応する角度

変換の計算を定数化、あるいは関数化した場合。