OpenGL 응용 프로그램에는 키보드 (움직임)와 마우스 (주변을 둘러보기)를 사용하여 제어되는 카메라가 있습니다.OpenGL 회전 문제
Everythings는 지금까지 완벽하게 잘 작동했습니다. Y 축에서 카메라를 300 이상으로 움직이면 마우스를 움직일 때 엉망이되기 시작합니다. 예를 들어, Y = 310으로 이동하여 마우스를 위로 움직이면 위로 올라 가기 시작할 때 왼쪽으로도 회전하기 시작합니다.
이유가 무엇인지 잘 모르겠습니다. 누구든지 도와 줄 수 있습니까?
가 Heres는 코드가 앞으로하는 gluLookAt()에 대한 위치까지 해결하기
더블 cosR, cosP, 아늑한; // sin/cos의 temp 값은 에서 double sinR, sinP, sinY; // 입력 된 롤/피치/요잉
if(Yaw > 359) Yaw = 0;
if(Pitch > 359) Pitch = 0;
if(Yaw < 0) Yaw = 359;
if(Pitch < 0) Pitch = 359;
cosY = cosf(Yaw*3.1415/180);
cosP = cosf(Pitch*3.1415/180);
cosR = cosf(Roll*3.1415/180);
sinY = sinf(Yaw*3.1415/180);
sinP = sinf(Pitch*3.1415/180);
sinR = sinf(Roll*3.1415/180);
//forward position
forwardPos.x = sinY * cosP*360;
forwardPos.y = sinP * 360;
forwardPos.z = cosP * -cosY*360;
//up position
upPos.x = -cosY * sinR - sinY * sinP * cosR;
upPos.y = cosP * cosR;
upPos.z = -sinY * sinR - sinP * cosR * -cosY;
ty @Basic - 철자 오류가 발생했습니다. –
그리고 추가 읽기를위한 유용한 링크 ... http://www.cprogramming.com/tutorial/3d/quaternions.html @Michael np;) – Basic