Ce face Math.sin / cos / tan / atan2
Math.sin, Math.cos și Math.tan primesc unghiul în radiani, nu în grade. Transformarea: radiani = grade * Math.PI / 180.
Funcțiile inverse Math.asin, Math.acos și Math.atan returnează un unghi în radiani. Math.atan2(y, x) returnează unghiul punctului (x, y) față de axa orizontală, între −π și π, ținând cont de cadran; este cea folosită pentru direcții și rotiri în jocuri și grafică.
Parametri
| Parametru | Descriere |
|---|---|
unghiRad |
Unghiul în radiani (pentru sin, cos, tan). |
y, x |
Coordonatele punctului (pentru atan2; atenție la ordine: întâi y). |
Ce returnează
Un număr: valoarea funcției sau un unghi în radiani.
Exemple
Exemplul 1: Grade și radiani
const rad = (grade) => grade * Math.PI / 180;
console.log(Math.sin(rad(30)));
console.log(Math.cos(rad(60)).toFixed(4));
console.log(Math.tan(rad(45)).toFixed(4));
console.log(Math.asin(1) * 180 / Math.PI);
console.log(Math.acos(0.5) * 180 / Math.PI, Math.atan(1) * 180 / Math.PI);
Rezultat
0.49999999999999994
0.5000
1.0000
90
60.00000000000001 45
Exemplul 2: Direcția spre un punct cu atan2
const grade = (rad) => Math.round(rad * 180 / Math.PI);
console.log(grade(Math.atan2(1, 1)));
console.log(grade(Math.atan2(1, -1)));
console.log(grade(Math.atan2(-1, -1)));
Rezultat
45
135
-135
Exemplul 3: Puncte pe un cerc
Math.sin pentru 270° dă aproape -1, iar Math.cos o valoare negativă foarte mică (nu exact 0), pe care Math.round o rotunjește la -0. În calcule, -0 se comportă ca 0.
const raza = 10;
for (let i = 0; i < 4; i++) {
const unghi = (i * Math.PI) / 2;
console.log(Math.round(raza * Math.cos(unghi)), Math.round(raza * Math.sin(unghi)));
}
Rezultat
10 0
0 10
-10 0
-0 -10
Greșeli frecvente
- Dai unghiul în grade:
Math.sin(30)nu este 0,5, ci sinusul a 30 de radiani (aproximativ −0,988). - Inversezi parametrii lui
atan2. Ordinea este(y, x), nu(x, y).
Comenzi înrudite
Math.hypot: Calculează rădăcina pătrată a sumei pătratelor: ipotenuza sau distanța dintre două puncte.Math.sinh / cosh / tanh: Funcțiile hiperbolice (sinus, cosinus, tangentă hiperbolică) și inversele lor.Math.round / floor / ceil: Rotunjește un număr: la cel mai apropiat întreg, în jos sau în sus.