Participer au site avec un Tip
Rechercher
 

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 :

Fonctions atan2, atan2f et atan2l

Entête à inclure

#include <math.h>  // <cmath> en C++

Fonctions atan2, atan2f et atan2l

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.

la figure suivante montre les liens entre la projection d'un angle sur le cercle trigonométrique et les fonctions sinus, cosinus et tangente.
Quelques rappels de trigonométrie

Paramètres

Valeur de retour

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).

Exemple de code

 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;
}
Exemple d'utilisation de la fonction atan

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
$> 

Sujets connexes

Les fonctions acos, acosf et acosl
Les fonctions asin, asinf et asinl
Les fonctions atan, atanf et atanl
Les fonctions cos, cosf et cosl
Les fonctions sin, sinf et sinl
Les fonctions tan, tanf et tanl
La méthode Math.atan2 en Java
La fonction atan2 en Python