C-Bibliotheksfunktionen -atan2()

C-Standardbibliothek - <math.h>

Beschreibung

atan2()ist die C-Standardbibliothek<math.h>Eine Funktion zur Berechnung des Arkustangens von zwei Parametern. Diese beiden Parameter stellen die y-Koordinate und die x-Koordinate eines Punktes dar,atan2()Die Funktion gibt den Winkel von der x-Achse zum Punkt (x, y) im Bogenmaß zurück. Diese Funktion ist leistungsfähiger als die Verwendung vonatan()Funktion ist leistungsfähiger, weil sie die Vorzeichen von x und y berücksichtigt und somit den korrekten Quadranten bestimmt.

Deklaration

Nachfolgend finden Sie die Deklaration der Funktion 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);

Parameter

  • x-- Ein Gleitkommawert, der die Koordinate der x-Achse darstellt.
  • y-- Ein Gleitkommawert, der die Koordinate der y-Achse darstellt.

Rückgabewert

  • Gibt den Arkustangens des Punktes (x, y) im Bogenmaß zurück. Der Wertebereich des Rückgabewerts ist [-π, π].

Beispiel

Das folgende Beispiel zeigt die Verwendung der Funktion atan2().

Beispiel

#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("Der Arkustangens von x = %lf, y = %lf", x, y);
   printf("Es sind %lf Grad\n", ret);
 
   return(0);
}
  • atan2(y, x)Berechnet den Arkustangens von y / x und berücksichtigt die Vorzeichen von y und x, um den korrekten Quadranten des Winkels zu bestimmen.
  • Das Ergebnis wird im Bogenmaß ausgedrückt, mit einem Bereich von [-π, π].
  • indem Sie das Ergebnis im Bogenmaß mit180 / π, können Sie es in Grad umrechnen.

Lassen Sie uns das obige Programm kompilieren und ausführen, was das folgende Ergebnis erzeugt:

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

Quadranten bestimmen

Das folgende Beispiel zeigt, wie man atan2() verwendet, um den Quadranten zu bestimmen, in dem ein Punkt liegt:

Beispiel

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

void print_quadrant(double y, double x) {
    double angle = atan2(y, x);
    printf("Punkt (%f, %f) liegt im Quadranten: ", 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;
}

Codeanalyse:

  • Funktionprint_quadrant()Akzeptiert die Parameter y und x, berechnet ihren Arkustangenswert und bestimmt anhand des Ergebnisses den Quadranten des Punktes.
  • Verwendung im Codeatan2(y, x)Berechnet den Arkustangenswert und bestimmt den Quadranten anhand des Bereichs des Winkels.

Lassen Sie uns das obige Programm kompilieren und ausführen, was das folgende Ergebnis erzeugt:

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

Fehlerbehandlung

  • atan2()Sie ist für alle Eingaben reeller Zahlen gültig, sodass keine zusätzliche Fehlerbehandlung erforderlich ist.
  • die Funktion setzt nichterrno, noch wird sie NaN zurückgeben.

Zusammenfassung

atan2()Die Funktion wird verwendet, um den Arkustangens des Punktes (x, y) zu berechnen, was sie zu einem leistungsstarken Werkzeug für Winkelberechnungen in einer zweidimensionalen Ebene macht. Im Vergleich zuatan(), kann sie Winkel in allen Quadranten korrekt verarbeiten und präzise Ergebnisse liefern. In mathematischen Berechnungen und der Grafikverarbeitung ist die sinnvolle Verwendung vonatan2()kann Code vereinfachen und die Genauigkeit verbessern.

C-Standardbibliothek - <math.h>

Weitere Erweiterungen