Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Calcula o arco tangente x (atan, atanf e atanl) ou o arco tangente de y/x (atan2, atan2f e atan2l).
Sintaxe
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
Parâmetros
x, y
Quaisquer números.
Valor retornado
atan retorna o arco tangente de x no intervalo de -π/2 a π/2 radianos. atan2 retorna o arco tangente de y/x no intervalo de -π a π radianos. Se x for 0, atan retornará 0. Se ambos os parâmetros de atan2 forem 0, a função retornará 0. Todos os resultados estão em radianos.
atan2 usa os sinais de ambos os parâmetros para determinar o quadrante do valor retornado.
| Entrada | Exceção SEH | Exceção _matherr |
|---|---|---|
| ± QNaN, IND | nenhum | _DOMAIN |
Comentários
A função atan calcula o arco tangente (a função inversa da tangente) de x. atan2 calcula o arco tangente de y/x (se x for igual a 0, atan2 retornará π/2 se y for positivo, -π/2 se y for negativo ou 0 se y for 0.)
Se você usar a atan macro ou atan2 de <tgmath.h>, o tipo do argumento determinará qual versão da função será selecionada. Confira Matemática do tipo genérico para obter detalhes.
atan tem uma implementação que usa SSE2 (Extensões SIMD de Streaming 2). Para obter informações e restrições relativas ao uso da implementação de SSE2, confira _set_SSE2_enable.
Como C++ permite a sobrecarga, você pode chamar sobrecargas de atan e atan2 que usam os argumentos float ou long double. Em um programa C, a menos que você esteja usando a macro <tgmath.h> para chamar essa função, atan e atan2 sempre usam argumentos double e retornam um double.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Requisitos
| Rotina | Cabeçalho necessário (C) | Cabeçalho necessário (C++) |
|---|---|---|
atan, atan2, atanf, atan2f, atanl, , atan2l |
<math.h> |
<cmath> ou <math.h> |
atanMacros , atan2 |
<tgmath.h> |
Exemplo
// 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
Confira também
Suporte matemático e de ponto flutuante
acos, acosf, acosl
asin, asinf, asinl
cos, cosf, cosl
_matherr
sin, sinf, sinl
tan, tanf, tanl
_CIatan
_CIatan2