마우스 움직임으로 카메라보기를 변경하고 카메라가 원점을 중심으로 arcball 방식으로 이동하지 않고 장면 아래로 이동하려고합니다. 그래서 종류의 돔 - 같은보기.Arcball 카메라 확대/축소
다음은 눈 좌표를 가져 와서 반 arcball보기를 만드는 데 만족스럽게 작동합니다. 장면 아래에서 볼 수 없도록 조건을 하드 코드했습니다. 이 조건의 결과로 장면 아래로가는 대신 카메라가 중앙으로 확대됩니다. 나는 카메라가이 '줌'을하는 것을 방해하는 방법에 대해 내 마음을 감쌀 수 없다. 돔 뷰의 가장 낮은 부분에 도달하면 왼쪽이나 오른쪽으로 만 이동할 수 있습니다. 거리는 일정합니다. 어떤 지침?
void onMotion(int x, int y) {
camX = distance * -sinf(x*(M_PI/180)) * cosf((y)*(M_PI/180));
camY = distance * -sinf((y)*(M_PI/180));
camZ = -distance * cosf((x)*(M_PI/180)) * cosf((y)*(M_PI/180));
if (camY < 4)
camY = 4;
glutPostRedisplay();
}
거리가 전혀 변하지 않습니까? 아니면 그렇지 않다면 시야가 변하는 것입니까? 또한 확대/축소 효과가 발생할 수 있습니다. – user1118321
@ user1118321, 거리는 고정되어 있지 않습니다. FOV가 바뀌고 있는지 어떻게 확인할 수 있습니까? – rafvasq
시야는 투영 행렬에 의해 제어됩니다. 변경되는 경우 잠재적으로 확대/축소 효과가 생성됩니다. – user1118321