Technical Article
각도 방향의 좌표구하는 법
fiadot_old
2003. 4. 4. 12:04
각도 방향의 좌표구하는 법
이건 순전히 참고인데요
질문 하신것의 반대의 결과를 얻고 싶으시면
그러니까 어떤 대상의 좌표를 알때 그 대상체와의 각도를 구하고싶다면
atan2()함수를 사용하세요.
반환값은 PI ~ -PI 이구요. 물론 radian이므로 degree로 바꿔주어야 하지요.
그러니까
atan2(-2, -2) = -135도
atan2(2, 2) = 45도 가 되는거예요.
예를 들어본다면
아래와 같이 A가 쏜 총알이 B를 따라가게 한다는 상황에서 각도를 사용하려면
(물론 관성이나 가속도는 무시하고)
B
| *
| *
y | *
| *
| *
| *
-------------------A
x
double dTheta;
int iVelocity = 5; // 총알의 속도
int ax, ay;
dTheta = atan2(y, x);
ax = cos(dTheta) * iVelocity;
ay = sin(dTheta) * iVelocity;
뭐 이런식으로 하면 되겠지요.
그리구 일반적으로 표준 라이브러리에서 제공하는 수학 함수들은
거의 인자나 리턴값으로 radian을 쓰니까 귀찮게 바꿀 필요도 없지요.
내가 썼지만 맞는 내용인가?
하여간 마음이 울적해서 몇마디 적었습니다. 흑흑....
-----
나우 NGM에서...뽀려와띰당...^^;;
이건 순전히 참고인데요
질문 하신것의 반대의 결과를 얻고 싶으시면
그러니까 어떤 대상의 좌표를 알때 그 대상체와의 각도를 구하고싶다면
atan2()함수를 사용하세요.
반환값은 PI ~ -PI 이구요. 물론 radian이므로 degree로 바꿔주어야 하지요.
그러니까
atan2(-2, -2) = -135도
atan2(2, 2) = 45도 가 되는거예요.
예를 들어본다면
아래와 같이 A가 쏜 총알이 B를 따라가게 한다는 상황에서 각도를 사용하려면
(물론 관성이나 가속도는 무시하고)
B
| *
| *
y | *
| *
| *
| *
-------------------A
x
double dTheta;
int iVelocity = 5; // 총알의 속도
int ax, ay;
dTheta = atan2(y, x);
ax = cos(dTheta) * iVelocity;
ay = sin(dTheta) * iVelocity;
뭐 이런식으로 하면 되겠지요.
그리구 일반적으로 표준 라이브러리에서 제공하는 수학 함수들은
거의 인자나 리턴값으로 radian을 쓰니까 귀찮게 바꿀 필요도 없지요.
내가 썼지만 맞는 내용인가?
하여간 마음이 울적해서 몇마디 적었습니다. 흑흑....
-----
나우 NGM에서...뽀려와띰당...^^;;