В OpenGL я пытаюсь повернуть камеру вокруг точки, когда камера находится на расстоянии r от точки и обращена к точке, когда она вращается. Другими словами, я хочу, чтобы камера двигалась по окружности круга с радиусом r от центра, при этом камера обращена к центру в любой точке по окружности.
Допустим, что в 3d-пространстве центр круга равен (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 - это градусы, перемещаемые по кругу.
Мой конечный результат: камера по-прежнему вращается по началу координат, а не по центру круга. Может ли кто-нибудь помочь мне исправить эту проблему? Спасибо!