Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Berechnet den Arkustangens von x
(atan
, atanf
und atanl
) oder den Arkustangens von y
/x
(atan2
, atan2f
und atan2l
).
Syntax
double atan( double x );
float atanf( float x );
long double atanl( long double x );
#define atan(X) // Requires C11 or later
float atan( float x ); // C++ only
long double atan( long double x ); // C++ only
double atan2( double y, double x );
float atan2f( float y, float x );
long double atan2l( long double y, long double x );
#define atan2(Y, X) // Requires C11 or later
float atan2( float y, float x ); // C++ only
long double atan2( long double y, long double x ); // C++ only
Parameter
x
, y
Alle Zahlen.
Rückgabewert
atan
gibt den Arkutangens des x
Bereichs -π/2 bis π/2 Bogenmaß zurück. atan2
gibt den Arkustangens des y
/x
Bereichs -π zurück, um Bogenmaße zu π. Wenn x
gleich 0 ist, gibt atan
0 zurück. Wenn beide Parameter von atan2
0 sind, gibt die Funktion 0 zurück. Alle Ergebnisse sind in Bogenmaß.
atan2
verwendet die Zeichen beider Parameter, um den Quadranten des Rückgabewerts zu bestimmen.
Eingabe | SEH-Ausnahme | _matherr -Ausnahme |
---|---|---|
± QNaN, IND | keine | _DOMAIN |
Hinweise
Die atan
-Funktion berechnet den Arkustangens (die umgekehrte Tangensfunktion) von x
. atan2
berechnet den Arkustangens von y
/x
(wenn x
gleich 0 ist, gibt atan2
π/2 zurück, wenn y
positiv ist, –π/2, wenn y
negativ ist, oder 0, wenn y
0 ist.)
Wenn Sie das Argument oder atan2
das atan
Makro <tgmath.h>
verwenden, bestimmt der Typ des Arguments, welche Version der Funktion ausgewählt ist. Ausführliche Informationen finden Sie unter Typgengenerische Mathematik.
atan
ist eine Implementierung, die SIMD-Streamingerweiterungen 2 (SSE2) verwendet. Informationen und Einschränkungen zur Verwendung der SSE2-Implementierung finden Sie unter _set_SSE2_enable
.
Da C++ Überladungen zulässt, können Sie Überladungen aufrufen und atan2
diese atan
annehmen float
oder long double
Argumente. In einem C-Programm, es sei denn, Sie verwenden das <tgmath.h>
Makro, um diese Funktion aufzurufen, atan
und atan2
nehmen double
immer Argumente und geben eine zurück double
.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header (C) | Erforderlicher Header (C++) |
---|---|---|
atan , , atan2 atanf , atan2f , , atanl atan2l |
<math.h> |
<cmath> oder <math.h> |
atan , atan2 Makros |
<tgmath.h> |
Beispiel
// crt_atan.c
// arguments: 5 0.5
#include <math.h>
#include <stdio.h>
#include <errno.h>
int main( int ac, char* av[] )
{
double x, y, theta;
if( ac != 3 ){
fprintf( stderr, "Usage: %s <x> <y>\n", av[0] );
return 1;
}
x = atof( av[1] );
theta = atan( x );
printf( "Arctangent of %f: %f\n", x, theta );
y = atof( av[2] );
theta = atan2( y, x );
printf( "Arctangent of %f / %f: %f\n", y, x, theta );
return 0;
}
Arctangent of 5.000000: 1.373401
Arctangent of 0.500000 / 5.000000: 0.099669
Siehe auch
Mathematische Unterstützung und Gleitkommaunterstützung
acos
, acosf
acosl
asin
, asinf
asinl
cos
, cosf
cosl
_matherr
sin
, sinf
sinl
tan
, tanf
tanl
_CIatan
_CIatan2