atan2()
Découvrez la fonction atan2() en PHP, utilisée pour obtenir l'arctangente de deux nombres et déterminer un angle à partir de coordonnées.
La fonction atan2() en PHP calcule l'arctangente de deux nombres, $y et $x. Elle retourne l'angle (en radians) entre l'axe x positif et le point ($x, $y), ce qui est exactement ce dont vous avez besoin pour convertir une paire de coordonnées en direction.
Cette page couvre la syntaxe de la fonction, ce qu'elle retourne, la différence clé entre atan2() et atan(), ainsi que des exemples exécutables.
Qu'est-ce que la fonction atan2() ?
atan2() est une fonction mathématique intégrée qui retourne l'arctangente du quotient $y / $x, mais — point crucial — elle utilise les signes des deux arguments pour placer le résultat dans le bon quadrant. Le résultat est exprimé en radians et varie de -π à π (environ -3.14159 à 3.14159).
Syntaxe
atan2(float $y, float $x): floatParamètres
| Paramètre | Description |
|---|---|
$y | Le dividende (la coordonnée y, ou la valeur dont la tangente est fournie au numérateur). |
$x | Le diviseur (la coordonnée x, ou le dénominateur). |
Valeur de retour
Un float compris entre -π et π représentant l'angle en radians. Convertissez-le en degrés avec rad2deg() lorsque vous avez besoin d'un angle lisible par un humain.
atan2() vs atan()
La fonction atan() à argument unique ne voit $y / $x que comme un seul nombre, elle ne peut donc pas faire la différence entre, par exemple, (1, 1) et (-1, -1) — les deux se réduisent à un rapport de 1. Elle retourne toujours un angle compris entre -π/2 et π/2 et perd l'information sur le quadrant. Elle peut également mal se comporter lorsque $x vaut 0, car cela représenterait une division par zéro.
atan2($y, $x) conserve les deux signes, couvre donc le cercle complet (-π à π) et gère sans problème le cas $x = 0. Préférez atan2() chaque fois que vos entrées sont de vraies coordonnées plutôt qu'un rapport précalculé.
Comment utiliser la fonction atan2()
Passez la valeur y en premier, puis la valeur x, et convertissez le résultat en radians en degrés si nécessaire :
Ceci affiche :
Radians: 1.1071487177941
Degrees: 63.434948822922Nous définissons $y et $x, les passons à atan2() pour obtenir l'angle en radians, puis utilisons rad2deg() pour convertir ce résultat en degrés.
Gestion des quadrants
Cet exemple montre comment atan2() retourne un angle distinct pour des points situés dans des quadrants différents — même lorsque le rapport $y / $x est identique :
<?php
// Same ratio (1), but different quadrants
echo rad2deg(atan2(1, 1)), "\n"; // upper-right quadrant
echo rad2deg(atan2(-1, -1)), "\n"; // lower-left quadrant
// $x is zero — no division-by-zero error
echo rad2deg(atan2(1, 0)), "\n"; // straight up
?>Résultat :
45
-135
90Parce que atan2() examine les deux signes, les points (1, 1) et (-1, -1) correspondent respectivement à 45° et -135°, et un $x nul est géré proprement.
Conclusion
atan2() est la fonction de référence pour convertir une paire de coordonnées en angle en PHP. Elle retourne des radians dans la plage -π à π, résout correctement les quatre quadrants et évite les problèmes de division par zéro qui affectent la fonction atan() à argument unique. Pour des fonctions trigonométriques associées, consultez atan(), tan(), ainsi que les fonctions de conversion deg2rad() et rad2deg().