Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Calcola l'arcotangente di x (atan, atanf e atanl) o l'arcotangente di y/x (atan2, atan2f e atan2l).
Sintassi
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
Parametri
x, y
Qualsiasi numero.
Valore restituito
atan restituisce l'arcotangente di x nell'intervallo da -π/2 a π/2 radianti. atan2 restituisce l'arcotangente di y/x nell'intervallo -π a π radianti. Se x è 0, atan restituisce 0. Se entrambi i parametri di atan2 sono 0, la funzione restituisce 0. Tutti i risultati sono in radianti.
atan2 usa i segni di entrambi i parametri per determinare il quadrante del valore restituito.
| Input | Eccezione SEH | Eccezione _matherr |
|---|---|---|
| ± QNaN, IND | Nessuno | _DOMAIN |
Osservazioni:
La funzione atan calcola l'arcotangente (la funzione inversa della tangente) di x. atan2 calcola l'arcotangente di y/x (se x è uguale a 0, atan2 restituisce π/2 se è positivo, -π/2 se y y è negativo o 0 se y è 0.
Se si utilizza la atan macro o atan2 da <tgmath.h>, il tipo dell'argomento determina quale versione della funzione è selezionata. Per informazioni dettagliate, vedere La matematica generica dei tipi.
atan ha un'implementazione che usa SSE2 (Streaming SIMD Extensions 2). Per informazioni e restrizioni sull'uso dell'implementazione SSE2, vedere _set_SSE2_enable.
Poiché C++ consente l'overload, è possibile chiamare overload di atan e atan2 che accettano float o long double argomenti. In un programma C, a meno che non si usi la <tgmath.h> macro per chiamare questa funzione atan e accettare double sempre argomenti e atan2 restituire un oggetto double.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Requisiti
| Ciclo | Intestazione obbligatoria (C) | Intestazione obbligatoria (C++) |
|---|---|---|
atan, atan2, atanf, atan2f, atanlatan2l |
<math.h> |
<cmath> oppure <math.h> |
atan, atan2 macro |
<tgmath.h> |
Esempio
// 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
Vedi anche
Supporto matematico e a virgola mobile
acos, acosf, acosl
asin, asinf, asinl
cos, cosf, cosl
_matherr
sin, sinf, sinl
tan, tanf, tanl
_CIatan
_CIatan2