Maison > développement back-end > C++ > le corps du texte

Quand dois-je utiliser atan() vs atan2() en C ?

Patricia Arquette
Libérer: 2024-11-17 00:00:03
original
262 Les gens l'ont consulté

When Should I Use atan() vs. atan2() in C  ?

La distinction entre atan et atan2 en C

En mathématiques, la tangente d'un angle α est définie comme le rapport de son sinus à cosinus :

tan(α) = sin(α) / cos(α)
Copier après la connexion

Cependant, cette formule ne peut pas faire la distinction entre les angles dans différents quadrants. Pour résoudre cette ambiguïté, C propose deux fonctions : atan et atan2.

atan : Calcul d'angle ambigu

La fonction atan() renvoie un angle compris entre -π/2 et π/2, quel que soit le quadrant à partir duquel la valeur tangente d'origine a été dérivée. Cela signifie que atan() ne peut représenter avec précision que les angles dans les premier et quatrième quadrants (où la tangente est positive).

atan2 : Détermination précise de l'angle

Contrairement à atan (), la fonction atan2() prend deux arguments : y et x. Ceux-ci représentent respectivement les composantes sinus et cosinus d’un angle. atan2() utilise ces valeurs pour calculer l'angle, en résolvant les quatre quadrants en ajoutant π au résultat de atan() chaque fois que le cosinus est négatif.

Représentation des vecteurs

La fonction atan2(y, x) est particulièrement utile pour représenter des vecteurs. Les arguments y et x représentent la projection d'un vecteur de longueur v et d'angle α sur les axes y et x, respectivement :

y = v * sin(α)
x = v * cos(α)
Copier après la connexion

Ainsi, la relation entre ces valeurs est :

y/x = tan(α)
Copier après la connexion

Conclusion

La fonction atan() convient aux situations où seuls les angles du premier ou du quatrième quadrant sont pertinents. Cependant, lorsqu'une détermination précise de l'angle est essentielle, la fonction atan2() doit être préférée. Il fournit une gamme complète d'angles et peut résoudre l'angle correct même si les valeurs d'entrée proviennent de différents quadrants.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal