JavaScriptでasin,acos,atanを計算しグラフを書く方法(Math.asin, Math.acos, Math.atan)
このページでは、JavaScriptの逆三角関数を計算するためのメソッドである Math.asin(x)
、Math.acos(x)
、Math.atan(x)
について詳しく解説します。
Math.asin(x)について
Math.asin(x)
は、x のアークサイン (逆正弦) をラジアン単位で返します。
数学的には次のように表されます。
\[ y = \arcsin(x) \] ここで、\( -1 \leq x \leq 1 \) かつ \( -\frac{\pi}{2} \leq y \leq \frac{\pi}{2} \) です。
例:
Math.asin(0)
の結果は \( 0 \) です。Math.asin(1)
の結果は \( \frac{\pi}{2} \) (約1.5708) です。Math.asin(-1)
の結果は \( -\frac{\pi}{2} \) (約-1.5708) です。
JavaScriptのコード例:
console.log(Math.asin(0)); // 0
console.log(Math.asin(1)); // 1.5707963267948966
console.log(Math.asin(-1)); // -1.5707963267948966
Math.acos(x)について
Math.acos(x)
は、x のアークコサイン (逆余弦) をラジアン単位で返します。
数学的には次のように表されます。
\[ y = \arccos(x) \] ここで、\( -1 \leq x \leq 1 \) かつ \( 0 \leq y \leq \pi \) です。
例:
Math.acos(1)
の結果は \( 0 \) です。Math.acos(0)
の結果は \( \frac{\pi}{2} \) (約1.5708) です。Math.acos(-1)
の結果は \( \pi \) (約3.1416) です。
JavaScriptのコード例:
console.log(Math.acos(1)); // 0
console.log(Math.acos(0)); // 1.5707963267948966
console.log(Math.acos(-1)); // 3.141592653589793
Math.atan(x)について
Math.atan(x)
は、x のアークタンジェント (逆正接) をラジアン単位で返します。
数学的には次のように表されます。
\[ y = \arctan(x) \] ここで、\( -\infty < x < \infty \) かつ \( -\frac{\pi}{2} < y < \frac{\pi}{2} \) です。
例:
Math.atan(0)
の結果は \( 0 \) です。Math.atan(1)
の結果は \( \frac{\pi}{4} \) (約0.7854) です。Math.atan(-1)
の結果は \( -\frac{\pi}{4} \) (約-0.7854) です。
JavaScriptのコード例:
console.log(Math.atan(0)); // 0
console.log(Math.atan(1)); // 0.7853981633974483
console.log(Math.atan(-1)); // -0.7853981633974483
グラフの描画方法
JavaScriptとHTML5のcanvas
要素を使用して、これらの関数のグラフを描画する方法を説明します。
以下は、Math.asin(x)
、Math.acos(x)
、Math.atan(x)
のグラフを描画する例です。
HTMLコード:
<canvas id="graph" width="500" height="500"></canvas>
<script>
const canvas = document.getElementById('graph');
const ctx = canvas.getContext('2d');
ctx.translate(250, 250); // 原点を中央に移動
function drawAxes() {
ctx.beginPath();
ctx.moveTo(-250, 0); // x軸
ctx.lineTo(250, 0);
ctx.moveTo(0, -250); // y軸
ctx.lineTo(0, 250);
ctx.strokeStyle = 'black';
ctx.stroke();
}
function plotFunction(func, color) {
ctx.beginPath();
for (let x = -1; x <= 1; x += 0.01) {
const y = func(x);
ctx.lineTo(x * 200, -y * 200);
}
ctx.strokeStyle = color;
ctx.stroke();
}
drawAxes();
plotFunction(Math.asin, 'red'); // Math.asinのグラフ
plotFunction(Math.acos, 'blue'); // Math.acosのグラフ
plotFunction(Math.atan, 'green'); // Math.atanのグラフ
</script>
このコードでは、赤色で Math.asin
、青色で Math.acos
、緑色で Math.atan
のグラフを描画します。