我正在开发一个增强现实应用程序,我拥有相机的偏航、俯仰和翻转角度。我想开始在3D环境中放置物体。我希望当用户点击时,在相机指向的位置(2D屏幕的中心)弹出一个3D点,当用户移动时,该点在3D空间中相应地移动。相机的位置不会改变,只有方向会改变。是否有一种恰当的方法来恢复该点的3D位置?我们可以假设所有点与相机的距离相等。
对于两个轴(OpenGL默认方向),我能够独立完成此任务。这适用于垂直轴的变化:
这也适用于水平轴的更改:
我在想,我应该将“combine”改为以下形式:
对于两个轴(OpenGL默认方向),我能够独立完成此任务。这适用于垂直轴的变化:
x = -sin(pitch)
y = cos(pitch)
z = 0
这也适用于水平轴的更改:
x = 0
y = -sin(yaw)
z = cos(yaw)
我在想,我应该将“combine”改为以下形式:
x = -sin(pitch)
y = sin(yaw) * cos(pitch)
z = cos(yaw)
这似乎很接近,但并不完全正确。如有建议,将不胜感激!