JavaScript で三角関数の計算をする際によく使用される `Math.sin()` 関数について、基本的な使い方から実践的な例まで詳しく解説します。

Math.sin()関数の基本

`Math.sin()` は JavaScript の組み込み関数で、与えられた角度(ラジアン)のサインを計算して返します。戻り値は -1 から 1 の間の数値になります。

const result = Math.sin(angle);

基本的な使い方

// 0度(0ラジアン)のサイン
console.log(Math.sin(0)); // 0

// 90度(π/2ラジアン)のサイン
console.log(Math.sin(Math.PI / 2)); // 1

// 180度(πラジアン)のサイン
console.log(Math.sin(Math.PI)); // 約0

度からラジアンへの変換

`Math.sin()` はラジアンを引数として受け取るため、度数法の角度を使用する場合は変換が必要です。

// 度からラジアンへの変換関数
function degreesToRadians(degrees) {
    return degrees * (Math.PI / 180);
}

// 60度のサインを計算
const sin60 = Math.sin(degreesToRadians(60));
console.log(sin60); // 約0.866

実践的な使用例

正弦波の生成

// 0から360度までの正弦波を生成
for (let degree = 0; degree <= 360; degree += 45) {
    const radian = degreesToRadians(degree);
    console.log(`${degree}度: ${Math.sin(radian)}`);
}

アニメーションでの活用

function animate(time) {
    // 時間に基づいて要素を上下に動かす
    const element = document.getElementById('moving-element');
    const yPosition = Math.sin(time / 1000) * 50;
    element.style.transform = `translateY(${yPosition}px)`;
    
    requestAnimationFrame(animate);
}

requestAnimationFrame(animate);

よくあるエラーと解決方法

1. NaN が返される場合

  • 引数が数値でない可能性があります
console.log(Math.sin('abc')); // NaN

2. 予期せぬ結果が出る場合

  • 角度をラジアンに変換し忘れている可能性があります
// 間違った使用例
console.log(Math.sin(90)); // 0.8939966636005579

// 正しい使用例
console.log(Math.sin(Math.PI / 2)); // 1

まとめ

`Math.sin()` は:

  • ラジアンを引数として受け取る
  • -1 から 1 の範囲の値を返す
  • 角度計算には度からラジアンへの変換が必要
  • アニメーションや波形生成などに活用できる

これらの基本を押さえることで、JavaScript での三角関数計算を効果的に行うことができます。

関連する数学関数

  • Math.cos() - コサイン計算
  • Math.tan() - タンジェント計算
  • Math.PI - 円周率
  • Math.asin() - アークサイン計算

これらの関数と組み合わせることで、より複雑な数学的計算やアニメーションを実現できます。