Ce face asin / acos / atan / atan2
asin, acos și atan fac operația inversă lui sin, cos și tan: primesc o valoare și returnează unghiul, în radiani. Transformă-l în grade cu rad2deg. Pentru asin și acos, valoarea trebuie să fie între -1 și 1, altfel rezultatul este NAN.
atan2(float $y, float $x) calculează unghiul punctului (x, y) față de axa orizontală și ține cont de cadran. Este alegerea corectă pentru direcții și rotații, unde atan($y / $x) greșește când $x este negativ sau 0.
Parametri
| Parametru | Descriere |
|---|---|
$num |
Valoarea sinusului (între -1 și 1) pentru asin, a cosinusului pentru acos, a tangentei pentru atan. |
Ce returnează
Unghiul, în radiani, sau NAN pentru valori în afara intervalului.
Exemple
Exemplul 1: Unghiul din valoare
<?php
echo rad2deg(asin(1)) . "\n";
echo round(rad2deg(acos(0.5)), 2) . "\n";
echo rad2deg(atan(1)) . "\n";
var_dump(asin(2));
Rezultat
90
60
45
float(NAN)
Exemplul 2: atan2 față de atan
Punctul (-1, 1) este în stânga sus, la 135 de grade. atan nu vede semnul lui x și dă -45.
<?php
$x = -1;
$y = 1;
echo rad2deg(atan($y / $x)) . "\n";
echo rad2deg(atan2($y, $x));
Rezultat
-45
135
Greșeli frecvente
- Inversezi parametrii lui
atan2. Primul este$y, al doilea$x.
Comenzi înrudite
sin / cos / tan: Calculează sinusul (sin), cosinusul (cos) și tangenta (tan) unui unghi exprimat în radiani.deg2rad / rad2deg: Transformă un unghi din grade în radiani (deg2rad) sau din radiani în grade (rad2deg).is_nan / is_finite / is_infinite: Verifică dacă un număr este NAN (is_nan), infinit (is_infinite) sau un număr normal, finit (is_finite).