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 <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ß mit
180 / π, 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 <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:
- Funktion
print_quadrant()Akzeptiert die Parameter y und x, berechnet ihren Arkustangenswert und bestimmt anhand des Ergebnisses den Quadranten des Punktes. - Verwendung im Code
atan2(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 nicht
errno, 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.