我目前正在尝试使用 OpenGL(使用 SDL)将立方体绘制到我在屏幕中左键单击的位置,然后让它指向我右键单击的屏幕位置。
我可以使用 gluUnproject 在我想要的位置成功地绘制一个立方体 - 这意味着我已经知道我的立方体所在的坐标。
但是我不知道如何计算使我的立方体指向新位置所需的所有角度。
当然我仍然使用gluUnproject来查找我右键单击的坐标,但我只知道如何使用2D图形围绕Z轴旋转。
例如之前,如果我想在 2D 中围绕 Z 轴旋转一个四边形(当然,这将是一个自上而下的视图,其中 Z 轴仍然“穿过”屏幕)我会做类似的事情:
angle = atan2(mouseCoordsY - quadPosY, mouseCoordsX - quadPosX);
glRotatef(angle*180/PI, 0, 0, 1);
我的问题是,我将如何在 3D 中进行此操作?
- 我需要像上面那样计算每个轴的角度吗?
- 如果是这样,我如何计算围绕 X 和 Y 轴旋转的角度?
- 如果不是,我应该使用什么方法来达到我想要的结果?
任何帮助是极大的赞赏。