2010-12-08 4 views
1

OpenGL 회전 함수 glRotatef (..)를 기반으로 3D 공간에서 오브젝트를 회전하는 방법에 문제가 있습니다.OpenGL의 경로를 향해 회전

glRotatef (angle , x , y , z) 

개체가 3D 공간에서 한 지점에서 다른 지점으로 이동 중입니다. 나는 물체가 여행하는 방향으로 회전하기를 원한다.

시작 지점과 종료 지점을 알고 있으면 glRotatef (...) 함수에 필요한 각도 x, y, z를 어떻게 찾을 수 있습니까?

답변

0

매우 까다롭게, 필요한 것은 이동 방향 (T)과 표면 법선의 교차 곱을 의미하는 이동 방향과 표면 법선에 수직이되는 회전 축을 얻는 것입니다 (n) 회전을위한 축을 줄 것입니다. 따라서 축 (A)은 다음과 같습니다.

A = norm (T x n) 또는 A = norm (n x T) 일 수 있습니다. 그 중 하나는 양수 각도를 사용하여 올바른 방향으로 "회전"시킵니다.

그러나, 회전 각도의 양 또는 음의 성질은 위의 사용의 어느 하나에 따라 분석 할 필요가있다, 그러나 이것은 당신이 회전 :

1

gluLookAt 기능의 축 시작한다 정확히 여기에 무엇이 필요합니다. 수동으로 축과 각도를 계산하지 않아도됩니다.