从前上右方确定俯仰、偏航和翻滚角。

3
在我的OpenGL应用程序中,场景中有一些对象。当我点击其中一个对象时,我希望我的相机能够看向该对象。为此,在确定了被点击的对象后,我计算相机的上下、前后和左右向量,然后需要能够计算相机的俯仰、偏航和滚转角度。然而,我对如何实现这一点感到困惑,所以任何帮助都将是极好的。
2个回答

1

这是一个反向计算的问题。从front向量中,您应该能够相对容易地推导出yawpitch

如果您的坐标系将x和z作为地面

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

可以通过将 front 进行归一化并使用 asin 函数来计算音高。

front.normalize();
pitch = asin(front.y);

如果我有时间,稍后我会研究如何计算“roll”。
否则,Shoosh提出了一个很好的建议,使用“gluLookAt”。

1

你实际上并不需要进行所有这些计算。只需使用 glLookAt()。它接受相机位置,要查看的位置和向上的向量,并相应地定位模型视图矩阵。

如果你真的想走捷径,请看看我对这个问题的回答。


如果由我来做的话,我会这样做……但是我应该通过这种方式学到更多。 - klaus johan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接