用另一个的偏航部分修正一个四元数的偏航部分

Rab*_*oon 7 math angle quaternions euler-angles

我有以下问题:来自运动捕捉装置的四元数(q1)需要通过由第二个被跟踪物体导出的另一个方向四元数(q2)的偏航角(并且仅偏航!)进行校正,以便俯仰和滚动q1与之前相同,但q1具有q2的偏航.

工作解决方案是将quat转换为矩阵,然后我进行计算以提取旋转角度,然后进行航向修正.但是这直接在某个轴的方向上(例如在0°-359°之后)导致"翻转".还尝试了其他不方便的转换.

是否有可能直接在四元数上进行数学运算而不转换为矩阵或欧拉角(即我可以将校正后的四元数设置为被跟踪对象的四元数)?

如上所述 - 校正应该仅包括围绕上轴的旋转(偏航).我对数学课程的编程可能性不多(不幸的是,Virtools的VSL Script在这个方向上非常有限).有人有什么建议吗?

flo*_*olo 0

简短回答:是的,这是可能的。您可以制定旋转(绕任意轴)并使用四元数运算来执行它。

长答案:请参阅维基百科关于四元数和旋转的文章。我猜你描述的问题是万向节锁。