JavaScriptでMath.acos()を使用して逆コサイン(アークコサイン)を計算する方法を解説します。
Math.acos()とは
Math.acos()は、与えられた数値の逆コサイン(アークコサイン)を計算するJavaScriptの組み込み関数です。戻り値は0からπ(ラジアン)の範囲で返されます。
基本的な使い方
const result = Math.acos(0.5);
console.log(result); // 1.0472... (約60度)引数の制限
Math.acos()の引数は-1から1の範囲内である必要があります。
- 最小値: -1
- 最大値: 1
この範囲外の値を引数として与えると、NaN(Not a Number)が返されます。
console.log(Math.acos(-2)); // NaN
console.log(Math.acos(1.5)); // NaNよくある使用例
度数からラジアンへの変換
function degreesToRadians(degrees) {
return degrees * (Math.PI / 180);
}
function radiansToDegrees(radians) {
return radians * (180 / Math.PI);
}
// 逆コサインを度数で取得
const angleInRadians = Math.acos(0.5);
const angleInDegrees = radiansToDegrees(angleInRadians);
console.log(angleInDegrees); // 約60度三角形の角度計算
// 三角形の2辺の長さから角度を求める
function getAngle(adjacent, hypotenuse) {
const cosTheta = adjacent / hypotenuse;
const thetaRadians = Math.acos(cosTheta);
return radiansToDegrees(thetaRadians);
}
console.log(getAngle(3, 6)); // 約60度注意点
1. 引数は必ず-1から1の範囲内にする
2. 戻り値はラジアンで返される
3. 度数が必要な場合は変換が必要
エラー対処法
NaNが返される場合
// エラーチェック付きの関数
function safeAcos(value) {
if (value < -1) return Math.PI; // -1未満の場合は180度
if (value > 1) return 0; // 1より大きい場合は0度
return Math.acos(value);
}
console.log(safeAcos(2)); // 0
console.log(safeAcos(-1.5)); // 3.141592...(π)精度の問題
JavaScript の浮動小数点数の精度により、計算結果が完全に正確でない場合があります。重要な計算では適切な丸め処理を行うことをお勧めします。
// 小数点以下3桁に丸める
const result = Math.round(Math.acos(0.5) * 1000) / 1000;まとめ
Math.acos()は三角関数の計算に欠かせない関数です。以下の点に注意して使用しましょう:
- 引数は-1から1の範囲内
- 戻り値はラジアン
- 必要に応じて度数への変換を行う
- エラー処理を適切に実装する
これらの注意点を守ることで、正確な逆コサインの計算が可能になります。