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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla