Math 为什么我的四元数在旋转时不断翻转我的对象?
我使用Math 为什么我的四元数在旋转时不断翻转我的对象?,math,language-agnostic,quaternions,Math,Language Agnostic,Quaternions,我使用[wxyz]形式的四元数旋转点。我的初始四元数是标识,[1 0 0] 当我按Q键时,我将当前四元数乘以[0.1 0 1 0]以获得围绕y轴的旋转。这在很大程度上是正确的 但是,如果我继续旋转(只要我按住Q键),我旋转的矩形就会不断地来回翻转,产生一个类似幽灵的图像。它看起来好像是在向前、向后、向前、向后、向前、向后等等 以下是我用来从四元数生成变换矩阵的代码: 1 - 2yy - 2zz 2xy - 2wz 2xz - 2wy 2xy + 2wz 1 - 2xx - 2z
[wxyz]
形式的四元数旋转点。我的初始四元数是标识,[1 0 0]
当我按Q键时,我将当前四元数乘以[0.1 0 1 0]
以获得围绕y轴的旋转。这在很大程度上是正确的
但是,如果我继续旋转(只要我按住Q键),我旋转的矩形就会不断地来回翻转,产生一个类似幽灵的图像。它看起来好像是在向前、向后、向前、向后、向前、向后等等
以下是我用来从四元数生成变换矩阵的代码:
1 - 2yy - 2zz 2xy - 2wz 2xz - 2wy
2xy + 2wz 1 - 2xx - 2zz 2yz - 2wx
2xz - 2wy 2yz + 2wx 1 - 2xx - 2yy
正如我所说,它似乎旋转正确。它只是快速地来回翻转。(如此之快,我无法捕捉到问题的动画GIF。)
有什么问题吗?我想你的等式在右上角有一个符号,这对你有用吗
1.0 - 2.0yy - 2.0zz, 2.0xy - 2.0zw, 2.0xz + 2.0yw
2.0xy + 2.0zw, 1.0 - 2.0xx - 2.0zz, 2.0yz - 2.0xw
2.0xz - 2.0yw, 2.0yz + 2.0xw, 1.0 - 2.0xx - 2.0yy
你知道“0.1”的角度是弧度,不是度吗?是的,它的旋转速度相当快。这会影响旋转量以外的任何东西吗?另外,您是否确保向量部分是标准化的(即单位长度)?您在这个问题中没有太多的细节,所以我只是提到一些可能会有帮助的常见问题。@而且我理解,谢谢。我在乘法后进行了标准化。我的轴旋转计算不正确。还有一个链接指向另一个问题,该问题包含计算它们的准确答案。