В настоящее время я пытаюсь использовать OpenGL (с SDL), чтобы нарисовать куб в том месте, где я щелкнул левой кнопкой мыши на экране, а затем заставил его указывать на то место на экране, где я щелкаю правой кнопкой мыши.
Я могу успешно нарисовать куб в желаемом месте с помощью gluUnproject - это означает, что я уже знаю координаты, в которых расположен мой куб.
Однако я не знаю, как рассчитать все углы, необходимые для того, чтобы мой куб стал точкой в новом месте.
Конечно, я все еще использую gluUnproject, чтобы найти координаты моего щелчка правой кнопкой мыши, но я знаю только, как для поворота вокруг оси Z с помощью 2D-графики.
Например, раньше, если бы я хотел повернуть четырехугольник вокруг оси Z (конечно, это был бы вид сверху вниз, где ось Z все еще "проходит" экран) в 2D, я бы сделал что-то вроде:
angle = atan2(mouseCoordsY - quadPosY, mouseCoordsX - quadPosX);
glRotatef(angle*180/PI, 0, 0, 1);
Мой вопрос: как мне сделать это в 3D?
Любая помощь приветствуется.