asin / acos / atan / atan2 în PHP

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

Sintaxă
asin(float $num): float

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).