如何交换四元数的横滚和俯仰?

问题描述 投票:0回答:1
我正在编写接收用于旋转 3D 模型的四元数值的代码。不过,为了以正确的旋转显示模型,我需要交换横滚和俯仰(绕 x 轴和 y 轴旋转)。由于我无法更改生成输入四元数的代码,是否可以交换四元数的滚动和俯仰?我想在不将四元数转换为欧拉角的情况下执行此操作,以避免倾斜为 90 度时出现问题。

rotation quaternions
1个回答
0
投票
猜测实际问题是您想要使用与源不同的基向量,组成变换

A

,它绕 z 旋转 90 度,并且可能还反转 1,使得 x 和 y 轴反转。

然后使用提供的表示未知变换的四元数,

B

,只需编写:

C = A . B . C^-1
即这样你的网络变换就会产生以下效果:

    调整您的输入,使其轴与
  1. B
     源假定的轴相匹配;
  2. 申请
  3. B
    ;和
  4. B
     的来源已知的世界调整回您想要的世界。
© www.soinside.com 2019 - 2024. All rights reserved.