W3docs

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:

php— editable, runs on the server

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:

  1. Leggibilità — l'intento ("calcolare un'ipotenusa / una distanza") è evidente a colpo d'occhio.
  2. Sicurezza numericahypot() è implementata per evitare overflow e underflow che una sqrt() ingenua dei valori al quadrato può causare quando $x o $y è molto grande o molto piccolo. Elevare al quadrato un numero grande può superare l'intervallo dei float e produrre INF, mentre hypot() è 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:

php— editable, runs on the server

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'essa 5 — i quadrati eliminano i segni.
  • Il risultato è un float. hypot(1, 1) restituisce 1.4142135623731 (PHP stampa con la sua precisione predefinita di 14 cifre significative). Non confrontare un risultato di hypot() 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().

Pratica

Pratica
Qual è la funzionalità della funzione hypot() in PHP?
Qual è la funzionalità della funzione hypot() in PHP?
Was this page helpful?