Ce face Math.sin
Math.sin, Math.cos și Math.tan primesc unghiul în radiani. Un cerc complet are 2π radiani (360°), deci 90° înseamnă π/2. Pentru a lucra în grade, convertești întâi cu Math.toRadians.
Rezultatele sunt aproximări double: Math.sin(Math.PI) nu dă exact 0, ci un număr foarte mic (1.2246467991473532E-16), pentru că nici Math.PI nu este exact π. Rotunjește rezultatul la afișare.
Parametri
| Parametru | Descriere |
|---|---|
radiani |
Unghiul, în radiani. |
Ce returnează
Un double: sin și cos între -1 și 1, tan orice valoare.
Exemple
Exemplul 1: Valori pentru unghiuri cunoscute
Tangenta lui 90° ar trebui să fie infinită; pentru că Math.PI / 2 nu este exact π/2, apare un număr uriaș.
public class Main {
public static void main(String[] args) {
int[] grade = {0, 30, 45, 60, 90};
for (int g : grade) {
double r = Math.toRadians(g);
System.out.printf("%2d°: sin=%.4f cos=%.4f tan=%.4f%n", g, Math.sin(r), Math.cos(r), Math.tan(r));
}
System.out.println(Math.sin(Math.PI));
}
}
Rezultat
0°: sin=0.0000 cos=1.0000 tan=0.0000
30°: sin=0.5000 cos=0.8660 tan=0.5774
45°: sin=0.7071 cos=0.7071 tan=1.0000
60°: sin=0.8660 cos=0.5000 tan=1.7321
90°: sin=1.0000 cos=0.0000 tan=16331239353195370.0000
1.2246467991473532E-16
Exemplul 2: Înălțimea unui copac
Stai la 20 m de copac și vezi vârful sub un unghi de 35°. Înălțimea este distanța × tan(unghi).
public class Main {
public static void main(String[] args) {
double distanta = 20;
double unghi = Math.toRadians(35);
double inaltime = distanta * Math.tan(unghi);
System.out.printf("Înălțimea copacului: %.2f m%n", inaltime);
}
}
Rezultat
Înălțimea copacului: 14.00 m
Exemplul 3: Puncte pe un cerc
Valoarea -0.0 de la ultimul punct apare pentru că cos(3π/2) este un număr negativ foarte mic, rotunjit la afișare.
public class Main {
public static void main(String[] args) {
double raza = 10;
for (int i = 0; i < 4; i++) {
double unghi = 2 * Math.PI * i / 4;
double x = raza * Math.cos(unghi);
double y = raza * Math.sin(unghi);
System.out.printf("Punctul %d: (%.1f, %.1f)%n", i, x, y);
}
}
}
Rezultat
Punctul 0: (10.0, 0.0)
Punctul 1: (0.0, 10.0)
Punctul 2: (-10.0, 0.0)
Punctul 3: (-0.0, -10.0)
Greșeli frecvente
- Dai unghiul în grade:
Math.sin(90)nu este 1, ci sinusul a 90 de radiani (0.894). ScrieMath.sin(Math.toRadians(90)). - Compari
Math.sin(x) == 0: din cauza rotunjirilor rar este exact 0. Compară cu o toleranță.
Comenzi înrudite
Math.toRadians: Transformă un unghi din grade în radiani (toRadians) și invers (toDegrees).Math.asin: Funcțiile trigonometrice inverse: din valoarea unui sinus, cosinus sau tangente obții unghiul, în radiani.Math.atan2: Returnează unghiul punctului (x, y) față de axa orizontală, între -π și π, ținând cont de cadranul în care se află.Math.sinh: Funcțiile hiperbolice: sinus, cosinus și tangentă hiperbolică, definite cu ajutorul lui eˣ.