W3docs

hypot()

Heute besprechen wir die Funktion hypot() in PHP, die zur Berechnung der Hypotenuse eines rechtwinkligen Dreiecks verwendet wird.

Die Funktion hypot() in PHP gibt die Länge der Hypotenuse eines rechtwinkligen Dreiecks zurück — gleichbedeutend mit dem geraden (euklidischen) Abstand vom Ursprung (0, 0) zum Punkt (x, y). Diese Seite behandelt die Syntax, warum Sie sie anstelle einer manuellen Formel verwenden sollten, und die dabei zu beachtenden Fallstricke.

Syntax

hypot(float $x, float $y): float
  • $x — Länge einer Seite (oder die x-Koordinate eines Punktes).
  • $y — Länge der anderen Seite (oder die y-Koordinate eines Punktes).
  • Rückgabewert — ein float: sqrt($x * $x + $y * $y).

Beide Argumente sind erforderlich, und die Funktion gibt immer einen float zurück, auch wenn das Ergebnis eine ganze Zahl ist (hypot(3, 4) gibt 5.0 zurück, was echo als 5 ausgibt).

Was hypot() berechnet

Nach dem Satz des Pythagoras ist die Hypotenuse eines rechtwinkligen Dreiecks die Quadratwurzel der Summe der Quadrate der beiden anderen Seiten:

Hypotenuse = √(Seite1² + Seite2²)

hypot() wertet genau diesen Ausdruck aus. Das klassische 3-4-5-Dreieck gibt 5 zurück:

php— editable, runs on the server

Hier speichern wir die beiden Seitenlängen in Variablen, übergeben sie an hypot() und geben das Ergebnis aus. Die Funktion gibt den Gleitkommazahlwert 5 zurück.

Warum nicht einfach sqrt() verwenden?

Sie könnten sqrt($x * $x + $y * $y) manuell schreiben — warum also hypot() verwenden? Zwei Gründe:

  1. Lesbarkeit — die Absicht ("Hypotenuse / Abstand berechnen") ist auf den ersten Blick klar.
  2. Numerische Sicherheithypot() ist so implementiert, dass Überlauf und Unterlauf vermieden werden, die bei einer naiven Verwendung von sqrt() mit quadrierten Werten auftreten können, wenn $x oder $y sehr groß oder sehr klein ist. Das Quadrieren einer großen Zahl kann den float-Bereich überschreiten und INF erzeugen, während hypot() so gebaut ist, dass es im Bereich bleibt.

Bei gewöhnlichen Berechnungen stimmen beide Ansätze überein; bei extremen Größenordnungen ist hypot() die sicherere Wahl. Siehe sqrt() und pow() für die grundlegenderen Bausteine.

Abstand zwischen zwei Punkten

Da hypot() den Abstand von (0, 0) zu (x, y) zurückgibt, können Sie den Abstand zwischen zwei beliebigen Punkten berechnen, indem Sie zunächst deren Koordinaten subtrahieren:

php— editable, runs on the server

Die Differenzen sind 3 und 4, also beträgt der Abstand 5. Dies ist die häufigste praktische Anwendung: das Messen von Abständen im 2D-Raum (UI-Layouts, Spielphysik, geografische Berechnungen auf einer flachen Ebene).

Hinweise und Fallstricke

  • Negative Eingaben sind kein Problem. Nur die Beträge zählen, daher ist hypot(-3, -4) ebenfalls 5 — die Quadrate heben die Vorzeichen auf.
  • Das Ergebnis ist ein float. hypot(1, 1) gibt 1.4142135623731 zurück (PHP gibt es mit der Standard-Genauigkeit von 14 signifikanten Stellen aus). Vergleichen Sie ein hypot()-Ergebnis nicht mit === mit einer ganzen Zahl.
  • Beide Argumente sind Pflicht. hypot() nimmt genau zwei Zahlen entgegen; für 3D-Abstände können Sie die Funktion verschachteln: hypot(hypot($x, $y), $z).

Fazit

hypot() bietet Ihnen eine kompakte, überlaufsichere Möglichkeit, eine Hypotenuse oder einen euklidischen 2D-Abstand zu berechnen, ohne die pythagoreische Formel manuell einzutippen. Greifen Sie darauf zurück, wenn Sie den Abstand vom Ursprung zu einem Punkt benötigen oder — durch Subtraktion der Koordinaten — den Abstand zwischen zwei beliebigen Punkten. Für verwandte mathematische Hilfsfunktionen erkunden Sie die vollständige PHP Math Functions Referenz, abs() und atan2().

Practice

Übung
Was ist die Funktionalität der Funktion hypot() in PHP?
Was ist die Funktionalität der Funktion hypot() in PHP?
Was this page helpful?