Sdílet prostřednictvím


atan, atanf, atanl, atan2, , atan2fatan2l

Vypočítá arkus tangens (, a ) nebo arkus tangens y/x (atan2, atan2fa ).atan2latanlatanfatanx

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 doubleznak .

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, , atanlatan2l <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, , acosfacosl
asin, , asinfasinl
cos, , cosfcosl
_matherr
sin, , sinfsinl
tan, , tanftanl
_CIatan
_CIatan2