【问题标题】:Why do my quaternions constantly flip my object while rotating?为什么我的四元数在旋转时会不断翻转我的对象?
【发布时间】:2013-12-13 13:40:06
【问题描述】:

我正在使用 [w x y z] 形式的四元数旋转点。我的初始四元数是身份[1 0 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 动画。)

可能是什么问题?

【问题讨论】:

  • 你知道'0.1'角度是弧度而不是度数吗?
  • @and 是的 - 它以不错的速度旋转。除了旋转量之外,这是否会影响其他任何因素?
  • 另外,你是否确保向量部分是标准化的(即单位长度)?
  • 你的问题没有太多细节,所以我只是提一些可能有帮助的常见问题。
  • @我明白了,谢谢。我确实在乘法后归一化。

标签: math language-agnostic quaternions


【解决方案1】:

我认为你的方程在右上角有一个符号,这对你有用吗

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

【讨论】:

  • 我计算的轴旋转不正确。有一个指向另一个问题的链接,其中包含计算它们的准确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
相关资源
最近更新 更多