合并两个四元数旋转的结果是否与两个矩阵的结果相同,然后将其转换为四元数?
我有一个四元数(q1)和旋转矩阵(m2)作为函数的输入(不幸的是,这是不可协商的),并且希望通过矩阵旋转初始的四元数,从而产生一个新的四元数。我已经尝试了几种方法来做到这一点,并取得了一些奇怪的结果。
如果将q1转换为矩阵(m1),计算m2.m1并将结果转换为四元数,则得到可能的四元数结果。然而,如果我使用完全相同的函数将m2转换为四元数,并将它们相乘(在这两种顺序中,我知道这是非交换的),则得到完全不同的结果。我想实现四元数的组合,这样我最终可以从当前的四元数到结果。
所有的函数都是从这里来的:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm,并正在用c++和mathematica进行测试。
发布于 2015-05-12 21:11:52
3x3旋转矩阵和单位四分位数之间有着精确的对应关系,直到四分位数的符号变化(在三维向量上执行旋转时,这个符号是无关的)。
这意味着,给定两个四分子,q1,q2,及其相应的矩阵m1,m2,四分子在向量v上的作用与矩阵在v上的作用相同。
q2*(q1*v*(q1^-1))*(q2^-1) = m2*m1*v如果您的程序没有使用任意向量v实现此结果,那么您的公式中可能会有错误。
https://stackoverflow.com/questions/30196706
复制相似问题