#include <math.h> // <cmath> en C++
double atan2( double y, double x );
float atan2f( float y, float x ); // C99
long double atan2l( long double y, long double x ); // C99
Ces trois fonctions permettent de calculer l'arc tangente de y/x (ou x et y représentent les coordonnées d'un point dans le plan). Les signes des deux variables sont utilisés pour déterminer le quadrant du résultat.
En mathématiques, l'arc tangente est la fonction inverse de la fonction tangente (fonction tan en C). L'arc tangente d'un nombre flottant réel est donc l'angle pour lequel la fonction tangente calcule la valeur passée en paramètre. L'angle retourné sera compris entre -π et π.
La différence entre ces trois fonctions réside dans le type de données utilisé pour le paramètre et la valeur de retour (double, float ou long double). Les fonctions atanf
et atanl
ont été ajoutées dans C99.
Ces trois fonctions renvoient la valeur d'un angle compris entre -π et π (donc exprimé en radians).
Si les deux arguments sont nuls, une erreur de domaine sera produite (la variable globale errno contiendra le code d'erreur EDOM).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <stdio.h> #include <math.h> int main() { double x; printf( "Saisir l'abscisse du point permattant le calcul d'atan2 : " ); scanf( "%lf", &x ); double y; printf( "Saisir l'ordonnée du point permattant le calcul d'atan2 : " ); scanf( "%lf", &y ); printf( "L'angle de cette tangente vaut : %lf radians\n", atan2( y, x ) ); return EXIT_SUCCESS; } |
Il est à noter que la librairie mathématique doit être ajoutée durant l'étape de "link" (édition des liens)
de votre exécutable. Cela se réalise en ajoutant l'option -lm
à votre compilateur GCC. En cas
d'utilisation d'un autre compilateur, je vous renvoie vers la documentation de ce dernier.
$> gcc -o sample sample.c -lm $> ./sample Saisir l'abscisse du point permattant le calcul d'atan2 : 1 Saisir l'ordonnée du point permattant le calcul d'atan2 : 1 L'angle de cette tangente vaut : 0.785398 radians $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :