Math.asin în Java

Funcțiile trigonometrice inverse: din valoarea unui sinus, cosinus sau tangente obții unghiul, în radiani.

Sintaxă
static double asin(double a)
static double acos(double a)
static double atan(double a)

Ce face Math.asin

Math.asin(x) (arcsinus) returnează unghiul al cărui sinus este x, între -π/2 și π/2. Math.acos(x) (arccosinus) returnează un unghi între 0 și π. Math.atan(x) (arctangentă) returnează un unghi între -π/2 și π/2.

Rezultatul este în radiani; folosește Math.toDegrees pentru grade. Pentru asin și acos, argumentul trebuie să fie între -1 și 1; altfel rezultatul este NaN. Când ai ambele coordonate ale unui punct, preferă Math.atan2 în locul lui atan(y / x).

Parametri

Parametru Descriere
a Valoarea sinusului, cosinusului sau tangentei.

Ce returnează

Unghiul, în radiani, ca double.

Exemple

Exemplul 1: Unghiuri din valori cunoscute

public class Main {
    public static void main(String[] args) {
        System.out.println(Math.toDegrees(Math.asin(0.5)));
        System.out.println(Math.toDegrees(Math.acos(0.5)));
        System.out.println(Math.toDegrees(Math.atan(1)));
        System.out.println(Math.asin(2));
    }
}

Rezultat

30.000000000000004
60.00000000000001
45.0
NaN

Exemplul 2: Panta unui drum

Un drum urcă 12 m pe o distanță orizontală de 100 m (panta de 12%). Unghiul este arctangenta raportului.

public class Main {
    public static void main(String[] args) {
        double urcare = 12;
        double orizontal = 100;
        double unghi = Math.toDegrees(Math.atan(urcare / orizontal));
        System.out.printf("Unghiul drumului: %.2f°%n", unghi);
    }
}

Rezultat

Unghiul drumului: 6.84°

Greșeli frecvente

  • Dai un argument puțin peste 1 din cauza rotunjirilor (de exemplu 1.0000000002) și primești NaN. Încadrează valoarea cu Math.clamp(x, -1.0, 1.0) înainte.
  • Afișezi direct rezultatul crezând că e în grade: Math.asin(0.5) este 0.5235… radiani, adică 30°.

Comenzi înrudite

  • Math.sin: Funcțiile trigonometrice sinus, cosinus și tangentă; unghiul se dă în radiani, nu în grade.
  • Math.atan2: Returnează unghiul punctului (x, y) față de axa orizontală, între -π și π, ținând cont de cadranul în care se află.
  • Math.toRadians: Transformă un unghi din grade în radiani (toRadians) și invers (toDegrees).
  • Math.asinh: Inversele funcțiilor hiperbolice (Java 27): din valoarea lui sinh, cosh sau tanh obții argumentul.