1
quaternions를 사용하여 OpenGL에서 객체를 회전하고 있지만 5도에서 -5도 (단위 평면 교차)에서 회전 할 때 내 모델 스핀이 " 먼 길. " 즉 비행기를 가로 질러 10 도가 아닌 5도에서 -5 도로 전체 350도 회전합니다. 이것은 각 축에 대한 회전에 대해 발생합니다. 언제든지 0도를 통해 회전하여 "이동"하고,이를 수정하는 방법을 모르겠습니다.OpenGL에서 0 번 회전
quaternion[0] = cos(pitch/2)*cos(yaw/2)*cos(roll/2) + sin(pitch/2)*sin(yaw/2)*sin(roll/2);
quaternion[1] = sin(pitch/2)*cos(yaw/2)*cos(roll/2) - cos(pitch/2)*sin(yaw/2)*sin(roll/2);
quaternion[2] = cos(pitch/2)*sin(yaw/2)*cos(roll/2) + sin(pitch/2)*cos(yaw/2)*sin(roll/2);
quaternion[3] = cos(pitch/2)*cos(yaw/2)*sin(roll/2) - sin(pitch/2)*sin(yaw/2)*cos(roll/2);
glLoadIdentity();
glPushMatrix();
glRotatef((float) (2.0f * acos(quaternion[0]) * 180.0f/PI), quaternion[1], quaternion[2], quaternion[3]);
어떤 제안 :
내 코드 롤, 피치 및 요는 오일러 내 객체의 회전 각도를 대표하는 곳처럼 보인다?