hypot()
In questa pagina trattiamo la funzione hypot() in PHP, usata per calcolare l'ipotenusa di un triangolo rettangolo.
La funzione hypot() in PHP restituisce la lunghezza dell'ipotenusa di un triangolo rettangolo — equivalentemente, la distanza euclidea (in linea retta) dall'origine (0, 0) al punto (x, y). Questa pagina illustra la sintassi, i motivi per preferirla alla formula manuale e i comportamenti da tenere in considerazione.
Sintassi
hypot(float $x, float $y): float$x— lunghezza di un lato (o la coordinata x di un punto).$y— lunghezza dell'altro lato (o la coordinata y di un punto).- Valore restituito — un
float:sqrt($x * $x + $y * $y).
Entrambi gli argomenti sono obbligatori e la funzione restituisce sempre un float, anche quando il risultato è un numero intero (hypot(3, 4) restituisce 5.0, che echo stampa come 5).
Cosa calcola hypot()
Secondo il teorema di Pitagora, l'ipotenusa di un triangolo rettangolo è la radice quadrata della somma dei quadrati degli altri due lati:
ipotenusa = √(lato1² + lato2²)
hypot() valuta esattamente questa espressione. Il classico triangolo 3-4-5 restituisce 5:
Qui memorizziamo le lunghezze dei due lati in variabili, le passiamo a hypot() e stampiamo il risultato. La funzione restituisce il valore in virgola mobile 5.
Perché non usare semplicemente sqrt()?
Si potrebbe scrivere sqrt($x * $x + $y * $y) a mano, quindi perché usare hypot()? Due motivi:
- Leggibilità — l'intento ("calcolare un'ipotenusa / una distanza") è evidente a colpo d'occhio.
- Sicurezza numerica —
hypot()è implementata per evitare overflow e underflow che unasqrt()ingenua dei valori al quadrato può causare quando$xo$yè molto grande o molto piccolo. Elevare al quadrato un numero grande può superare l'intervallo dei float e produrreINF, mentrehypot()è progettata per restare nell'intervallo.
Per la matematica ordinaria i due approcci coincidono; per magnitudini estreme hypot() è la scelta più sicura. Vedi sqrt() e pow() per le funzioni di base di livello inferiore.
Distanza tra due punti
Poiché hypot() restituisce la distanza da (0, 0) a (x, y), è possibile trovare la distanza tra due punti qualsiasi sottraendo prima le loro coordinate:
Le differenze sono 3 e 4, quindi la distanza è 5. Questo è l'uso più comune nel mondo reale: misurare distanze in uno spazio 2D (layout UI, fisica di gioco, calcoli geografici su un piano).
Note e comportamenti da considerare
- Gli input negativi sono accettati. Contano solo le magnitudini, quindi
hypot(-3, -4)è anch'essa5— i quadrati eliminano i segni. - Il risultato è un float.
hypot(1, 1)restituisce1.4142135623731(PHP stampa con la sua precisione predefinita di 14 cifre significative). Non confrontare un risultato dihypot()con un intero usando===. - Entrambi gli argomenti sono obbligatori.
hypot()accetta esattamente due numeri; per le distanze 3D, annidare le chiamate:hypot(hypot($x, $y), $z).
Conclusione
hypot() offre un modo conciso e sicuro contro l'overflow per calcolare un'ipotenusa o una distanza euclidea 2D senza dover scrivere la formula pitagorica a mano. Usarla ogni volta che è necessaria la distanza dall'origine a un punto, oppure — sottraendo le coordinate — tra due punti qualsiasi. Per altri strumenti matematici correlati, consulta il riferimento completo delle funzioni matematiche PHP, abs() e atan2().