atan2()
Scopri la funzione atan2() in PHP: calcola l'arcotangente di due numeri e restituisce l'angolo in radianti nel quadrante corretto.
La funzione atan2() in PHP calcola l'arcotangente di due numeri, $y e $x. Restituisce l'angolo (in radianti) tra l'asse x positivo e il punto ($x, $y), che è esattamente ciò di cui hai bisogno quando vuoi convertire una coppia di coordinate in una direzione.
Questa pagina illustra la sintassi della funzione, i valori restituiti, la differenza fondamentale tra atan2() e atan(), e alcuni esempi eseguibili.
Cos'è la funzione atan2()?
atan2() è una funzione matematica integrata che restituisce l'arcotangente del quoziente $y / $x, ma — ed è fondamentale — utilizza i segni di entrambi gli argomenti per collocare il risultato nel quadrante corretto. Il risultato è espresso in radianti e varia da -π a π (circa -3.14159 a 3.14159).
Sintassi
atan2(float $y, float $x): floatParametri
| Parametro | Descrizione |
|---|---|
$y | Il dividendo (la coordinata y, ovvero il valore di cui si fornisce la tangente come numeratore). |
$x | Il divisore (la coordinata x, ovvero il denominatore). |
Valore restituito
Un float nell'intervallo da -π a π che rappresenta l'angolo in radianti. Convertilo in gradi con rad2deg() quando hai bisogno di un angolo leggibile.
atan2() vs atan()
La funzione atan() con argomento singolo vede $y / $x come un unico numero, quindi non riesce a distinguere, ad esempio, tra (1, 1) e (-1, -1) — entrambi danno un rapporto pari a 1. Restituisce sempre un angolo nell'intervallo da -π/2 a π/2, perdendo le informazioni sul quadrante. Inoltre può comportarsi in modo errato quando $x è 0, poiché ciò corrisponderebbe a una divisione per zero.
atan2($y, $x) mantiene entrambi i segni, quindi copre il cerchio completo (da -π a π) e gestisce correttamente il caso $x = 0. Usa atan2() ogni volta che le coordinate sono valori reali piuttosto che un rapporto già calcolato.
Come usare la funzione atan2()
Passa prima il valore y, poi il valore x, e converti il risultato in radianti in gradi se necessario:
Questo stampa:
Radians: 1.1071487177941
Degrees: 63.434948822922Definiamo $y e $x, li passiamo a atan2() per ottenere l'angolo in radianti, quindi usiamo rad2deg() per convertire il risultato in gradi.
Gestione dei quadranti
Questo esempio mostra come atan2() restituisca un angolo distinto per punti in quadranti diversi — anche quando il rapporto $y / $x è lo stesso:
<?php
// Same ratio (1), but different quadrants
echo rad2deg(atan2(1, 1)), "\n"; // upper-right quadrant
echo rad2deg(atan2(-1, -1)), "\n"; // lower-left quadrant
// $x is zero — no division-by-zero error
echo rad2deg(atan2(1, 0)), "\n"; // straight up
?>Output:
45
-135
90Poiché atan2() esamina entrambi i segni, i punti (1, 1) e (-1, -1) vengono mappati rispettivamente a 45° e -135°, e il caso $x = 0 è gestito correttamente.
Conclusione
atan2() è la funzione ideale per convertire una coppia di coordinate in un angolo in PHP. Restituisce radianti nell'intervallo da -π a π, risolve correttamente tutti e quattro i quadranti ed evita i problemi di divisione per zero che affliggono la funzione atan() con argomento singolo. Per la trigonometria correlata, vedi atan(), tan() e gli helper di conversione deg2rad() / rad2deg().