hypot
hypot($x, $y)
Renvoie la racine carrée de x² + y², c’est-à-dire la longueur de l’hypoténuse d’un triangle rectangle ou la distance du point [x, y] à l’origine. Contrairement à la formule directe, elle ne déborde pas avec de grands nombres.
Paramètres
- $x – le premier côté de l’angle droit (la différence des coordonnées x).
- $y – le second côté de l’angle droit (la différence des coordonnées y).
Exemples
echo hypot(3, 4); // 5 echo hypot(-5, 12); // 13 // la distance de deux points $ax = 1; $ay = 2; $bx = 4; $by = 6; echo hypot($bx - $ax, $by - $ay); // 5 echo round(hypot(1, 1), 4); // 1.4142 // grands nombres : la formule directe déborde vers l'infini, hypot non var_dump(is_infinite(sqrt(1e200 ** 2 + 1e200 ** 2))); // bool(true) var_dump(is_infinite(hypot(1e200, 1e200))); // bool(false) // en trois dimensions : imbriquer hypot echo hypot(hypot(2, 3), 6); // 7
Points d’attention
- Le résultat est toujours un nombre décimal, même quand il tombe juste (hypot(3, 4) est le float 5).
- Elle ne calcule qu’en deux dimensions. Pour trois, il suffit d’imbriquer la fonction comme dans le dernier exemple.
- Les coordonnées géographiques (GPS) ne sont pas des points dans un plan : une différence de degrés passée à hypot() ne donne pas une distance en mètres.
Fonctions associées :
sqrt()
pow()
atan2()
abs()
is_infinite()