确定俯仰,偏航,从右前方滚动

时间:2009-12-04 14:46:02

标签: opengl

在我的教学openGL appl中,我在场景中有一些对象,当我点击其中一个时,我希望我的相机能够看到那个对象。在我确定点击的对象后,我计算相机的向上,向前和向右矢量,然后我需要能够计算相机的俯仰,偏航,滚动角度。但是我对如何做到这一点毫无头绪,所以任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

您实际上并不需要进行所有这些计算。只需使用glLookAt()即可。它取得了相机的位置,你想要看的位置和向上矢量,并相应地定位了模型视图矩阵。

如果你真的想要这么做,请看看我的回答to this question

答案 1 :(得分:1)

这是向后计算的问题。从front向量,您应该能够相对轻松地推断yawpitch

如果您的坐标系有x和z作为楼层

yaw = atan2(front.z, front.x);

可以通过标准化front并使用asin

来计算音高
front.normalize();
pitch = asin(front.y);

如果我有时间,我会考虑计算roll

否则提出了使用gluLookAt

的好建议