저는 현재 http://www.codecolony.de/opengl.htm#camera의 코드를 사용하고 있고 씬 위에서 궤도를 그리는 기능을 추가하려고합니다 (카메라를 객체 주위로 이동).opengl 서클에서 위치 회전
주어진 중심에서 원을 그리는 것처럼 생각했습니다. 거의 작동합니다. 내가 선택한 지점에서 회전하며보기가 올바른 방향입니다. 문제는 반경이 일정하지 않고 항상 중심에 더 가깝게 접근한다는 것입니다. 여기
코드는 내가 쓰기된다
void CCamera::RotateView(GLfloat Angle, SF3dVector center) // in degree
{
// rotate the position over the center
Position.x = cos(Angle*PIdiv180) * (Position.x - center.x) - sin(Angle*PIdiv180) * (Position.z - center.z) + center.x;
Position.z = sin(Angle*PIdiv180) * (Position.x - center.x) + cos(Angle*PIdiv180) * (Position.z - center.z) + center.z;
// adjust the viewDir
ViewDir = center - Position;
//now compute the new RightVector (by cross product)
RightVector = CrossProduct(&ViewDir, &UpVector);
}
는 I (카메라가) 항상 중심에서 같은 거리에 숙박하지 않는 이유 어떤 아이디어가 있습니까?