tail head cat sleep
QR code linking to this page

Man page  — ATAN2

명칭

atan2, atan2f – 2 개의 변수의 역탄젠트 함수

내용

프로그램 라이브러리

Math Library (libm, -lm)

서식


#include <math.h>
double
atan2(double y, double x);

float
atan2f(float y, float x);

해설

atan2() 함수와 atan2f() 함수는, y/, Ns, Ar, x 의 역탄젠트의 주치를 계산합니다. 그 때, 양쪽 모두의 인수의 부호를 사용해 반환값의 상한을 판정합니다.

반환값

atan2() 함수와 atan2f() 함수는, 처리가 성공하면(자), 범위 [-π, +π] 의 라디안으로, y/, Ns, Ar, x 의 역탄젠트를 돌려줍니다. x (와)과 y 의 양쪽 모두가 0 의 경우, 글로벌 변수 errno 하지만 EDOM (으)로 설정됩니다. VAX 그럼 다음과 같습니다.
atan2(y, x) :=atan(y/x) x > 0 의 경우
sign(y)*(π -atan(|y/x|) x < 0 의 경우
0 x = y = 0 의 경우,
sign( y)*π/2 x = 0 ! = y 의 경우

함수 atan2() VAX 그리고 ``x > 0 의 경우'', atan2() 0 = 0 (을)를 정의합니다. 이전에는 atan2() 0 (은)는 에러 메세지를 생성하고 있었다 가능성이 있는 것에도 불구하고입니다. atan2() 0 에 값을 할당하는 이유는 다음과 같습니다.
  1. atan2() 0 의 계산을 회피하기 위해서 인수를 테스트하는 프로그램은, 이 값에 무관계한 필요가 있습니다. 이것이 무효라는 점을 요구하는 프로그램은, 다양한 컴퓨터 시스템상에서 이것이 무효라는 점에 대한 다양한 반응에 대해 취약합니다.
  2. atan2() 함수는, 구형 (x, y) (을)를, 극좌표 (r, theta) (r,θ) (으)로 변환하기 위해서(때문에) 가장 자주(잘) 사용됩니다. 이 좌표는, r*cos theta r*cosθ 및 y = r*sin theta r*sinθ (을)를 채웁니다. (r, theta) 이러한 등식이 채워지는 것은, (x=0, y=0)가 VAX 그리고 (r=0, theta=0)

    (r=0,θ=0) 에 MAP 될 때입니다. 일반적으로, 극좌표에의 변환은 다음과 같이 해 계산할 필요가 있습니다.

    r       := hypot(x, y); ... := sqrt(x*x+y*y)
    theta   := atan2(y, x)
    
    r       := hypot(x, y); ... := √(x2+y2)
    theta   := atan2(y, x)
    
    
  3. 상기의 공식은, IEEE 754 에 준거하는 머신에서는 부호 첨부의 0 및 무한하게, 합리적인 방법으로, 대처하려고 변경할 필요는 없습니다. 그러한 머신용으로 제공되고 있다 hypot(3) (와)과 atan2() (은)는 모든 케이스를 처리하는 듯 설계되고 있습니다. 이것이 예를 들어 atan2(±0, -0) = ±π 인 이유입니다. 일반적으로, 상기의 공식은 다음의 것과 동등합니다.
    r := sqrt(x*x+y*y); r =0 의 경우는, x := copysign(1, x);
    

    r := √(x*x+y*y);   r =0 의 경우는, x := copysign(1, x);

관련 항목

acos(3), asin(3), atan(3), cos(3), cosh(3), math(3), sin(3), sinh(3), tan(3), tanh(3)

표준

atan2() 함수는 ISO/IEC 9899:1990 ("ISO C90") 에 적합하고 있습니다.

ATAN2 (3) May 2, 1991

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.