【JS応用|初心者向け】初心者でもわかる!Math.tanで三角関数を使いこなそう

1. 導入:Math.tanで何ができるのか?

JavaScriptでゲーム開発やアニメーション作成を始めると、「要素を回転させたい」「斜めに動かしたい」といった計算が必要になる場面があります。そんな時、数学の知識をコードで再現するために使われるのが「三角関数」です。今回解説するMath.tanは、タンジェント(正接)を求めるためのAPIで、図形の傾きや、ある角度に応じた比率を計算する際に欠かせない重要なツールです。

2. 基礎知識:Math.tanと三角関数

数学の授業で習った「タンジェント(tan)」は、直角三角形における「高さ ÷ 底辺」の比率を指します。JavaScriptのMath.tan関数は、引数として「ラジアン」という単位の角度を受け取り、そのタンジェント値を返します。

ここで注意が必要なのは、普段私たちが使う「度数法(0〜360度)」ではなく、プログラムの世界では「ラジアン(円周率πを使った単位)」が基準であるという点です。
・180度 = Math.PI(ラジアン)
・角度をラジアンに変換する公式: 角度 (Math.PI / 180)

3. 実装・解決策

Math.tanを扱う際は、角度をラジアンに変換してから渡すのが鉄則です。また、タンジェントは90度(π/2)付近で値が無限大に発散するため、複雑な計算を行う際は注意が必要です。基本的な使い方は、Math.tan(ラジアン)と記述するだけです。

4. サンプルプログラム

以下のコードをブラウザのコンソールや、HTMLファイルに貼り付けて試してみてください。

// 45度のタンジェントを求める計算例
const degree = 45;

// 1. まず度数をラジアンに変換する
const radian = degree  (Math.PI / 180);

// 2. Math.tanを使って計算する
const result = Math.tan(radian);

// 結果を表示(1に近い値が出れば成功です)
console.log(degree + "度のタンジェントは: " + result);

// 応用:マウスの座標から角度を計算する際などにも利用されます
function getSlope(angleInDegrees) {
  // 角度から傾きを算出する関数
  return Math.tan(angleInDegrees  (Math.PI / 180));
}

console.log("60度の傾き比率は: " + getSlope(60));

5. 応用・注意点

現場でMath.tanを使う際に陥りやすい罠が、「戻り値の精度」です。JavaScriptの計算上、本来「1」になるはずの場所が「0.9999999999999999」のように微小な誤差を含んで返ってくることがあります。

また、Math.atan2(y, x)という逆関数も併せて覚えておくと非常に便利です。こちらは2点間の座標(x, y)から角度を割り出すことができるため、キャラクターをマウスの方向に向けたい時など、実務ではMath.tanよりも頻繁に登場します。まずはMath.tanで「比率」を理解し、次に逆関数で「角度」を求めるステップに進むのが上達の近道です。

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