使用角度变换 3d 点



我有一个 3d 点,我想用角度(偏航、俯仰和滚动)围绕 { 0, 0, 0 } 旋转。

在不将角度转换为矩阵的情况下,我将如何去做?

好吧,你并没有真正"将角度转换为矩阵"。 严格来说,旋转是线性变换,通常由旋转发生的角度和轴(矢量)组成。 定义角度/轴旋转的两种最简单方法是使用四元数或旋转矩阵。 可能还有其他方法,但使用这两种方法主要是因为它们是迄今为止任何人提出的最简单的方法。 在两者中,我个人更喜欢四元数的旋转,因为它们更容易实现并且需要更少的算术运算。 3x3矩阵的优点是它们能够处理一般的3D->3D线性变换;4x4 矩阵可以在 3D 矢量上执行一般的 3D->3D 仿射变换。

如果要对偏航、俯仰和横滚使用单独的旋转,则可能应该查看与欧拉角相关的问题。 您可以使用旋转矩阵或四元数对这些进行建模。 这两种方法基本上是等效的。 只需定义一系列角度/轴对并将它们相乘以获得最终旋转即可。 然后,该旋转将应用于您必须到达旋转值的任何点。

最新更新