W3docs

atan()

La funzione atan() in PHP restituisce l'arcotangente di un numero in radianti. Scopri sintassi, parametri, valori restituiti ed esempi pratici.

La funzione atan() in PHP restituisce l'arcotangente di un numero — l'angolo il cui tangente è uguale a quel numero. Il risultato è sempre espresso in radianti. Questa pagina illustra la sintassi, i parametri, il valore restituito, l'intervallo dei risultati e la relazione di atan() con le funzioni correlate come tan() e atan2().

Che cos'è la funzione atan()?

L'arcotangente (spesso indicata come arctan o tan⁻¹) è l'inverso della funzione tangente. Se tan(θ) = x, allora atan(x) = θ. Quindi atan() risponde alla domanda: "Quale angolo ha questa tangente?"

La funzione accetta un singolo argomento numerico e restituisce l'angolo in radianti. Poiché la tangente è periodica e si ripete all'infinito, atan() restituisce sempre l'angolo nell'intervallo principale −π/2 a π/2 (approssimativamente da −1.5708 a 1.5708 radianti, ovvero da −90° a 90°).

Sintassi

atan(float $num): float
ParteDescrizione
$numIl valore di cui calcolare l'arcotangente. È valido qualsiasi numero reale.
Valore restituitoL'arcotangente di $num, in radianti, nell'intervallo da −M_PI/2 a M_PI/2.

Come usare la funzione atan()

Passa un numero e ottieni l'angolo la cui tangente è quel numero:

php— editable, runs on the server

Questo stampa 0.46364760900081. Il valore è in radianti, non in gradi.

Conversione del risultato in gradi

Poiché atan() restituisce radianti, di solito si converte in gradi per un output leggibile dall'utente usando rad2deg():

<?php
$radians = atan(1);        // tangent of the angle is 1
echo $radians, "\n";       // 0.78539816339745  (π/4)
echo rad2deg($radians);    // 45
?>

atan(1) è π/4 perché tan(45°) = tan(π/4) = 1.

Valori di riferimento utili

Questi risultati mostrano l'intervallo principale e la simmetria della funzione:

<?php
echo atan(0), "\n";    // 0
echo atan(1), "\n";    // 0.78539816339745   (45°)
echo atan(-1), "\n";   // -0.78539816339745  (-45°)
echo atan(100), "\n";  // 1.5607966601082    (approaches π/2)
echo atan(-100);       // -1.5607966601082   (approaches -π/2)
?>

Man mano che l'input cresce verso l'infinito positivo, il risultato si avvicina a π/2 senza mai raggiungerlo; verso l'infinito negativo si avvicina a −π/2. La funzione è dispari: atan(-x) === -atan(x).

atan() vs atan2()

atan() accetta un solo argomento e non riesce a determinare in quale quadrante si trovava l'angolo originale, quindi il suo output è limitato a −π/2…π/2. Quando si dispone sia della componente y che della componente x di un punto o vettore, usa atan2() — considera i segni di entrambi gli argomenti e restituisce l'angolo completo nell'intervallo da −π a π:

<?php
echo atan(1 / 1), "\n";   // 0.78539816339745  (45°)
echo atan2(1, 1), "\n";   // 0.78539816339745  (45°, same here)
echo atan2(-1, -1);       // -2.3561944901923  (-135°, correct quadrant)
?>

atan(-1 / -1) si ridurrebbe a atan(1) e perderebbe il quadrante, motivo per cui atan2() è preferibile per i calcoli di direzione e angolo di un vettore.

Casi d'uso comuni

  • Trovare l'angolo di una pendenza o di una retta dalla sua gradiente.
  • Calcolare la direzione di un vettore 2D (preferire atan2() quando entrambe le componenti sono note).
  • Matematica trigonometrica inversa in codice di fisica, grafica e geometria.

Funzioni correlate

  • tan() — la tangente di un angolo (l'operazione inversa).
  • atan2() — arcotangente di due variabili, con il quadrante corretto.
  • atanh() — la tangente iperbolica inversa.
  • asin() e acos() — arcoseno e arcocoseno.
  • rad2deg() e deg2rad() — conversione tra radianti e gradi.

Conclusione

La funzione atan() restituisce l'arcotangente di un numero come angolo in radianti, sempre compreso tra −π/2 e π/2. Ricorda che il risultato è in radianti (convertilo con rad2deg() quando hai bisogno dei gradi), e usa atan2() quando hai bisogno del quadrante corretto dai valori separati di y e x.

Pratica

Pratica
Cosa fa la funzione atan() in PHP?
Cosa fa la funzione atan() in PHP?
Was this page helpful?