我有一个3d点,我想在{0,0,0}周围使用角度(偏航,俯仰和滚动)进行旋转。
如果不将角度转换为矩阵,我该怎么做?
答案 0 :(得分:1)
嗯,你真的没有“将角度转换为矩阵”。严格地说,旋转是线性变换,并且通常包括角度和旋转发生的轴(矢量)。定义角度/轴旋转的两种最简单的方法是使用四元数或旋转矩阵。可能还有其他方法,但这两种方法的使用很大程度上是因为它们是迄今为止任何人提出的最简单的方法。在这两者中,我个人更喜欢使用四元数进行旋转,因为它们更容易实现并且需要更少的算术运算。 3x3矩阵的好处是它们能够处理一般3D-> 3D linear transformation; 4x4矩阵可以对3D矢量执行一般3D-> 3D affine transformation。
如果您想对偏航,俯仰和翻滚使用单独的旋转,您应该查看与Euler Angles相关的问题。您可以使用旋转矩阵或四元数对这些进行建模。两种方法基本上是等同的。这只是定义一系列角度/轴对并将它们相乘以获得最终旋转的问题。然后将该旋转应用于您必须到达旋转值的任何点。