정의 및 사용법
atan2() 함수는 두 변수에 대한 아크탄젠트(arc tangent) 값을 계산하는 PHP 수학 함수입니다.
atan2(y, x)는 두 숫자 x와 y의 아크탄젠트를 반환합니다. 단순히 atan(y)/atan(x) 또는 atan(y/x)과 유사해 보이지만, 결정적인 차이점이 있습니다. 바로 x와 y 두 값의 부호를 모두 고려하여 결과가 속하는 사분면(quadrant)을 정확하게 판단한다는 점입니다.
x와 y 값에 따라 atan2() 함수의 동작은 다음과 같습니다.
- x > 0 이면 → atan(y/x)
- x < 0 이고 y ≥ 0 이면 → atan(y/x) + π
- x < 0 이고 y < 0 이면 → atan(y/x) − π
- x = 0 이고 y > 0 이면 → π/2
- x = 0 이고 y < 0 이면 → −π/2
- x = 0 이고 y = 0 이면 → 0
이 함수는 각도를 라디안(radian) 단위로 계산하며, 그 결과는 float(실수) 타입으로 반환됩니다.
문법
atan2( float $y , float $x ) : float
매개변수
| 번호 | 매개변수 및 설명 |
|---|---|
| 1 | y 피제수(dividend), 즉 나누어지는 값입니다. |
| 2 | x 제수(divisor), 즉 나누는 값입니다. |
반환 값
PHP atan2() 함수는 라디안 단위의 각도를 float 실수 형태로 반환합니다.
PHP 버전 지원
이 함수는 PHP 4.x, PHP 5.x, 그리고 PHP 7.x 버전에서 모두 사용할 수 있습니다.
예제 1: atan2(1, 2) 계산하기
다음 예제는 atan2(1, 2)의 값을 계산합니다.
<?php
$y=1;
$x=2;
$val=atan2($y, $x);
echo "atan2(" . $y . "," . $x . ") = " . $val;
?>출력 결과
atan2(1,2) = 0.46364760900081
예제 2: 음수 좌표에서의 atan2(5, -5)
다음 예제는 x가 음수일 때 atan2(5, -5)를 계산합니다. 사분면 판단 덕분에 올바른 각도가 반환되는 것을 확인할 수 있습니다.
<?php
$y=5;
$x=-5;
$val=atan2($y, $x);
echo "atan2(" . $y . "," . $x . ") = " . $val;
?>출력 결과
atan2(5,-5) = 2.3561944901923
예제 3: x가 0일 때 atan2(5, 0)
다음 프로그램은 atan2(5, 0)을 계산하며, π/2(M_PI_2)에 해당하는 약 1.5707963267949를 반환합니다.
<?php
$y=5;
$x=0;
$val=atan2($y, $x);
echo "atan2(" . $y . "," . $x . ") = " . $val;
?>출력 결과
atan2(5,0) = 1.5707963267949
예제 4: 원점에서의 atan2(0, 0)
다음 예제는 atan2(0, 0)을 계산하며, 이 경우 함수는 0을 반환합니다.
<?php
$y=0;
$x=0;
$val=atan2($y, $x);
echo "atan2(" . $y . "," . $x . ") = " . $val;
?>출력 결과
atan2(0,0) = 0
마무리
atan2() 함수는 2차원 좌표계에서 벡터의 방향 각도를 구하거나, 게임 개발·그래픽 프로그래밍에서 회전 각도를 계산할 때 특히 유용합니다. 일반적인 atan() 함수와 달리 사분면 정보를 잃지 않기 때문에, x와 y의 부호 조합에 따라 −π부터 π까지의 전체 범위에서 정확한 각도를 얻을 수 있다는 점이 가장 큰 장점입니다.