2012-04-04 4 views
0

X, Y, Z의 관점에서 3D 벡터를 따라 이동하는 물체가 있습니다 ... 각 축 (x- y 축 및 z 축)에 대한 정보를 제공합니다.각도 (X, Y, Z)로 된 벡터의 OpenGL 방향

도의 측정 값은 어떻게 구합니까?

(I에서 OpenGL을 사용하여 만 glRotatef(...) 알고 있어요) [glRotatef (...) this 질문을 보면 문서 here] 는 대답은 (

viewvector = <x, y, z>

R = SQRT을 제공합니다 x² + y² + z²)

피 = arctan 값 (Y, X)

ARCCOS 세타 = (Z/R)

하지만 this wiki 페이지에서 본인은 :

피 => Z 축

세타 주위 각도 =시오 바스케스-브람스에서 편집]> X 사이의 각도/y 평면

하지만 어떻게 Y를 찾을 수 있습니까? 또는해야합니까?

진짜 질문은 무엇입니까? glRotatef(...)의 관점에서 어떻게 표현합니까?

+0

세 번째 각도는 이동 방향에 영향을 미치지 않으므로 임의입니다. 특정 값을 강요하려면 다른 제한 조건이 필요합니다. –

+0

그럼 제대로 이해하려면'glRotatef (theta, 1.0, 1.0, 0.0)'과'glRotatef (phi, 0.0, 0.0, 1.0)'가 작동할까요? – Wallter

+0

glRotatef (phi, 0,0,1); glRotatef (theta, 1,0,0); –

답변

1

쎄타는 XY 평면 위의 각도입니다. Phi는 Z 축을 중심으로 한 각도입니다. 일반적으로 n 차원의 극좌표는 n-1 개의 각도 구성 요소와 1 개의 반경 구성 요소를 갖습니다.

+0

설명해 주셔서 감사합니다. - 어떻게 glRotatef (...)로 회전시킬 수 있습니까? – Wallter

+0

먼저, 'glRotate *()'가 각도가 아닌 벡터를 취하기 때문에 세타와 파이에 대해 걱정할 필요가 없습니다. 롤에 관해서는, 그것은 당신이 스스로 결정할 필요가있을 것입니다. –