atan
, atanf
, atanl
, atan2
, , atan2f
atan2l
Vypočítá arkus tangens (, a ) nebo arkus tangens y
/x
(atan2
, atan2f
a ).atan2l
atanl
atanf
atan
x
Syntaxe
double atan( double x );
float atanf( float x );
long double atanl( long double x );
#define atan(X) // Requires C11 or higher
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 higher
float atan2( float y, float x ); // C++ only
long double atan2( long double y, long double x ); // C++ only
Parametry
x
, y
Všechna čísla.
Vrácená hodnota
atan
vrátí arkusangens rozsahu x
-π/2 až π/2 radiánů. atan2
vrátí arkusangens y
/x
oblasti -π k π radiánů. Pokud x
je 0, atan
vrátí hodnotu 0. Pokud jsou oba parametry atan2
0, vrátí funkce hodnotu 0. Všechny výsledky jsou v radiánech.
atan2
používá znaménka obou parametrů k určení kvadrantu návratové hodnoty.
Vstup | Výjimka SEH | Výjimka _matherr |
---|---|---|
± QNaN, IND | Žádná | _DOMAIN |
Poznámky
Funkce atan
vypočítá arkusangens (inverzní tangens) funkce x
. atan2
vypočítá arkus tangens y
/x
(pokud x
se rovná 0, atan2
vrátí hodnotu π/2, pokud y
je kladná, -π/2, pokud y
je záporná, nebo 0, pokud y
je 0.)
Pokud použijete atan
makro nebo atan2
z <tgmath.h>
něho , typ argumentu určuje, která verze funkce je vybrána. Podrobnosti najdete v tématu Matematika pro obecné typy.
atan
má implementaci, která používá streamovaná rozšíření SIMD 2 (SSE2). Informace a omezení týkající se použití implementace SSE2 naleznete v tématu _set_SSE2_enable
.
Vzhledem k tomu, že jazyk C++ umožňuje přetížení, můžete volat přetížení atan
a atan2
které přebírají float
nebo long double
argumenty. V programu jazyka C, pokud k volání této funkce nepoužíváte <tgmath.h>
makro, atan
atan2
a vždy vezměte double
argumenty a vraťte double
znak .
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Rutina | Povinná hlavička (C) | Povinná hlavička (C++) |
---|---|---|
atan , atan2 , atanf , atan2f , , atanl atan2l |
<math.h> |
<cmath> nebo <math.h> |
atan , atan2 makra |
<tgmath.h> |
Příklad
// 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
Viz také
Podpora pro matematiku a plovoucí desetinou čárku
acos
, , acosf
acosl
asin
, , asinf
asinl
cos
, , cosf
cosl
_matherr
sin
, , sinf
sinl
tan
, , tanf
tanl
_CIatan
_CIatan2