JavaScript/Math/cos
Math.cos(x)
は、引数 x
の余弦(コサイン)を返します。ここで、x
はラジアン単位で指定されます[1]。
- 引数
x
がNaN
の場合、NaN
を返します。 - 引数
x
が+0
または-0
の場合、1
を返します。 - 引数
x
がInfinity
または-Infinity
の場合、NaN
を返します。
例
余弦を計算するプログラム
以下のプログラムは、ユーザーが入力した角度(度単位)の余弦を計算します。
const f = p => { for (;;) { a = prompt(`${p}は何度ですか?`); if (!isNaN(a)) return a; alert(`${p}に、入力ミスがあります。 "${a}"`); } } for (;;) { const degrees = f("角度"); const radians = degrees * Math.PI / 180; const cosine = Math.cos(radians); if (!isNaN(cosine)) { alert(`${degrees}度の余弦は ${cosine.toFixed(3)} です。`); break; } alert("入力が大きすぎます。"); }
このプログラムでは、Math.cos
を使用して角度の余弦を計算しています。ユーザーが入力した角度が NaN
や Infinity
の場合、適切に処理されます。
余弦波を描画するプログラム
以下のプログラムは、余弦波を描画します。
const canvas = document.createElement('canvas'); document.body.appendChild(canvas); const ctx = canvas.getContext('2d'); canvas.width = 800; canvas.height = 400; const amplitude = 100; const frequency = 2; const phase = 0; const yOffset = canvas.height / 2; ctx.beginPath(); ctx.moveTo(0, yOffset); for (let x = 0; x < canvas.width; x++) { const radians = (x / canvas.width) * 2 * Math.PI * frequency + phase; const y = yOffset - amplitude * Math.cos(radians); ctx.lineTo(x, y); } ctx.strokeStyle = 'blue'; ctx.lineWidth = 2; ctx.stroke();
このプログラムでは、Math.cos
を使用して余弦波を描画しています。amplitude
は振幅、frequency
は周波数、phase
は位相を表します。
注意点
- ラジアン単位:
Math.cos
はラジアン単位で角度を受け取るため、度単位の角度をラジアンに変換する必要があります。 - 精度: 浮動小数点演算の特性上、
Math.cos
の結果には微小な誤差が含まれることがあります。
脚註
- ↑ これは、数学的には単位円上の角度
x
に対応する点のx座標を返します。