La différence entre atan et atan2 en C
En trigonométrie, la fonction arctangente (atan) calcule l'angle dont la tangente est une valeur donnée . Cependant, atan a une limitation dans la mesure où il ne renvoie que les angles du premier ou du quatrième quadrant (-π/2 <= atan() <= π/2), quelle que soit l'entrée.
Pour surmonter cette limitation, C fournit la fonction atan2. Contrairement à atan, qui ne prend qu'un seul argument (la tangente), atan2 prend deux arguments : le sinus et le cosinus de l'angle. Cela permet à atan2 de déterminer le quadrant de l'angle et de renvoyer l'angle correct dans la plage -π <= atan2() <= π.
Résolution du quadrant
Le La principale différence entre atan et atan2 réside dans la façon dont ils résolvent le quadrant de l'angle. atan suppose que l'entrée provient du premier ou du quatrième quadrant, tandis qu'atan2 considère les signes du sinus et du cosinus pour déterminer le quadrant correct.
Quadrant | atan() | atan2(sin(α), cos(α)) |
---|---|---|
I | -π/2 <= atan() <= π/2 | 0 <= atan2() <= π/2 |
II | -π/2 <= atan() <= π/2 | -π/2 <= atan2() <= 0 |
III | -π/2 <= atan() <= π/2 | π/2 <= atan2() <= π |
IV | -π/2 <= atan() <= π/2 | 0 <= atan2() <= π/2 |
Syntaxe
double atan(double radians); double atan2(double y, double x);
Exemple
Considérons un angle α avec une tangente de 1. En utilisant atan() seul, nous ne pouvons pas déterminer si α est dans le premier ou le troisième quadrant. Cependant, en utilisant atan2(), nous pouvons récupérer l'angle correct :
double angle = atan2(sin(alpha), cos(alpha));
Note complémentaire
atan2() est particulièrement utile dans les calculs vectoriels, où il peut être utilisé pour trouver l'angle d'un vecteur en cartésien coordonnées.
Conclusion
Bien qu'atan soit suffisant pour certaines applications qui ne nécessitent que des angles dans le premier ou le quatrième quadrant, atan2 fournit une solution plus complète en résolvant le quadrant de l'angle. et renvoyer l'angle correct dans toute la plage [-π, π].
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!