В OpenGL я пытаюсь повернуть камеру вокруг точки, когда камера находится на расстоянии r от точки и обращена к точке, когда она вращается. Другими словами, я хочу, чтобы камера двигалась по окружности круга на радиусе r от центра, при этом камера была обращена к центру в любой точке по окружности.
Допустим, в трехмерном пространстве центр круга равен (3, 0, 3);
Я пробовал:
// move to center of circle
glTranslatef(-3, 0, -3)
// move a distance away from the circle
glTranslatef(0, 0, r);
// rotate along the y "up" axis
glRotatef(CameraAngle, 0, 1, 0);
где CameraAngle - градусы, перемещаемые по кругу.
Мой конечный результат - камера все еще вращается вдоль начала координат, а не центра круга. Может кто-нибудь помочь мне решить эту проблему? Спасибо!