我目前正在尝试使用OpenGL(带有SDL)在屏幕上绘制一个立方体,并使其指向右键单击的位置。
使用gluUnproject,我可以成功地在所需位置绘制一个立方体 - 这意味着我已经知道我的立方体所处的坐标。
然而,我不知道如何计算所有必要的角度,以使我的立方体指向新位置。
当然,我仍然使用gluUnproject来查找我的右键单击的坐标,但我只知道如何在2D图形中绕Z轴旋转。
例如,在此之前,如果我想要在2D中沿Z轴旋转四边形(当然,这将是俯视图,其中Z轴仍然“穿过”屏幕),我会做类似于以下操作:
angle = atan2(mouseCoordsY - quadPosY, mouseCoordsX - quadPosX);
glRotatef(angle*180/PI, 0, 0, 1);
我的问题是,我该如何在三维空间中实现这个效果?
- 我是否需要像上面那样计算每个轴的角度?
- 如果需要,如何计算绕X和Y轴旋转的角度?
- 如果不需要,我应该使用什么方法来达到我想要的结果?
非常感谢您的帮助。