atan
, , atanf
, atanl
, atan2
, , atan2f
atan2l
Oblicza arcus tangens wartości (, , i atanl
) lub arcus tangens (/x
y
atan2
, atan2f
, i ).atan2l
atanf
atan
x
Składnia
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
Dowolna liczba.
Wartość zwracana
atan
Zwraca arcus tangens x
zakresu -π/2 do π/2 radianów. atan2
Zwraca arcus tangens zakresu y
/x
-π do π radianów. Jeśli x
wartość to 0, atan
zwraca wartość 0. Jeśli oba parametry atan2
mają wartość 0, funkcja zwraca wartość 0. Wszystkie wyniki są w radianach.
atan2
używa znaków obu parametrów do określenia ćwiartki wartości zwracanej.
Dane wejściowe | Wyjątek SEH | Wyjątek _matherr |
---|---|---|
± QNaN, IND | Brak | _DOMAIN |
Uwagi
Funkcja atan
oblicza arcus tangens (odwrotną funkcję tangensową) elementu x
. atan2
oblicza arcus tangens wartości y
/x
(jeśli x
równa się 0, zwraca wartość π/2, atan2
jeśli y
jest dodatnia, -π/2, jeśli y
jest ujemna, lub 0, jeśli y
ma wartość 0).
Jeśli używasz makra atan
lub atan2
z <tgmath.h>
, typ argumentu określa, która wersja funkcji jest zaznaczona. Aby uzyskać szczegółowe informacje, zobacz Typy ogólne matematyczne .
atan
ma implementację korzystającą z rozszerzeń SIMD przesyłania strumieniowego 2 (SSE2). Aby uzyskać informacje i ograniczenia dotyczące korzystania z implementacji SSE2, zobacz _set_SSE2_enable
.
Ponieważ język C++ umożliwia przeciążenie, można wywołać przeciążenia elementów i atan2
, które przyjmują float
argumenty atan
lub long double
. W programie języka C, chyba że używasz makra <tgmath.h>
do wywoływania tej funkcji i atan
atan2
zawsze pobieraj double
argumenty i zwraca wartość double
.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek (C) | Wymagany nagłówek (C++) |
---|---|---|
atan , , atan2 , atanf , atan2f , , atanl atan2l |
<math.h> |
<cmath> lub <math.h> |
atan , atan2 makra |
<tgmath.h> |
Przykład
// 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
Zobacz też
Obsługa obliczeń matematycznych i zmiennoprzecinkowych
acos
, , acosf
acosl
asin
, , asinf
asinl
cos
, , cosf
cosl
_matherr
sin
, , sinf
sinl
tan
, , tanf
tanl
_CIatan
_CIatan2