Fonctions de la bibliothèque C -atan2()

Bibliothèque standard C - <math.h>

Description

atan2()est la bibliothèque standard C<math.h>Une fonction pour calculer l'arctangente de deux paramètres. Ces deux paramètres représentent la coordonnée y et la coordonnée x d'un point,atan2()La fonction renvoie l'angle entre l'axe des x et le point (x, y), en radians. Cette fonction est plus puissante que d'utiliseratan()la fonction est plus puissante car elle prend en compte les signes de x et y, déterminant ainsi le quadrant correct.

Déclaration

Voici la déclaration de la fonction atan2().

#include <math.h>

double atan2(double y, double x);
float atan2f(float y, float x);
long double atan2l(long double y, long double x);

Paramètre

  • x-- Une valeur à virgule flottante représentant la coordonnée de l'axe des x.
  • y-- Une valeur à virgule flottante représentant la coordonnée de l'axe des y.

Valeur de retour

  • Renvoie l'arctangente du point (x, y), en radians. La plage de valeurs de retour est [-π, π].

Exemple

L'exemple suivant illustre l'utilisation de la fonction atan2().

Exemple

#include <stdio.h>
#include <math.h>

#define PI 3.14159265

int main ()
{
   double x, y, ret, val;

   x = -7.0;
   y = 7.0;
   val = 180.0 / PI;

   ret = atan2 (y,x) * val;
   printf("L'arctangente de x = %lf, y = %lf", x, y);
   printf("C'est %lf degrés\n", ret);
 
   return(0);
}
  • atan2(y, x)Calcule l'arctangente de y / x et tient compte des signes de y et de x pour déterminer le quadrant correct de l'angle.
  • Le résultat est exprimé en radians, avec un intervalle de [-π, π].
  • en multipliant le résultat en radians par180 / π, vous pouvez le convertir en degrés.

Compilons et exécutons le programme ci-dessus, ce qui produira le résultat suivant :

x = -7.000000, y = 7.000000 的反正切是 135.000000 度

Déterminer le quadrant

L'exemple suivant montre comment utiliser atan2() pour déterminer le quadrant dans lequel se trouve un point :

Exemple

#include <stdio.h>
#include <math.h>

void print_quadrant(double y, double x) {
    double angle = atan2(y, x);
    printf("Le point (%f, %f) est dans le quadrant : ", x, y);
    if (angle > 0 && angle < M_PI / 2) {
        printf("I\n");
    } else if (angle > M_PI / 2 && angle < M_PI) {
        printf("II\n");
    } else if (angle < 0 && angle > -M_PI / 2) {
        printf("IV\n");
    } else {
        printf("III\n");
    }
}

int main() {
    print_quadrant(1.0, 1.0);  // I
    print_quadrant(1.0, -1.0); // II
    print_quadrant(-1.0, -1.0); // III
    print_quadrant(-1.0, 1.0); // IV

    return 0;
}

Analyse du code :

  • Fonctionprint_quadrant()Accepte les paramètres y et x, calcule leur valeur d'arctangente et détermine le quadrant du point en fonction du résultat.
  • Utilisation dans le codeatan2(y, x)Calcule la valeur d'arctangente et détermine le quadrant en fonction de l'intervalle de l'angle.

Compilons et exécutons le programme ci-dessus, ce qui produira le résultat suivant :

Point (1.000000, 1.000000) is in quadrant: I
Point (-1.000000, 1.000000) is in quadrant: II
Point (-1.000000, -1.000000) is in quadrant: III
Point (1.000000, -1.000000) is in quadrant: IV

Gestion des erreurs

  • atan2()Elle est valide pour toutes les entrées de nombres réels, donc aucune gestion d'erreur supplémentaire n'est requise.
  • la fonction ne définit paserrno, et elle ne renverra pas NaN.

Résumé

atan2()La fonction est utilisée pour calculer l'arctangente du point (x, y), ce qui en fait un outil puissant pour les calculs d'angle dans un plan bidimensionnel. Comparée àatan(), elle peut gérer correctement les angles dans tous les quadrants et renvoyer des résultats précis. Dans les calculs mathématiques et le traitement graphique, l'utilisation rationnelle deatan2()peut simplifier le code et améliorer la précision.

Bibliothèque standard C - <math.h>

autres extensions