旋转表达:blender下骨骼重映射的公式推导 bone animation retarget
设编辑模式下的骨骼变换矩阵为M_edit,在pose mode下则为M_pose,最后在view3d下呈现M_final。则有关系式:M_final = M_pose x M_edit。 可得M_final = M_pose x M_edit
现规定E_final为M_final的欧拉角(绕x,y,z轴)的旋转表达,则E_final = E_pose + E_edit不应该成立,因为旋转表达并不能线性叠加。这句话对吗?
是的,这句话是正确的。
欧拉角(绕x,y,z轴的旋转)不能简单地线性相加,即使它们表示的是同一个变换的不同部分。原因如下:
-
旋转的非交换性:旋转操作不满足交换律,即先绕X轴旋转再绕Y轴旋转,与先绕Y轴旋转再绕X轴旋转,结果是不同的。
-
万向节死锁问题:欧拉角表示旋转时存在奇点问题,在某些特定角度下会导致自由度丢失。
-
非线性空间:旋转矩阵属于SO(3)群,而欧拉角只是这个群的一种参数化表示,它们之间的运算不是简单的线性运算。
M矩阵 与 Q四元数 等价吗?
是的,具体来说:
-
表示等价性:3×3 旋转矩阵和单位四元数都可以表示三维空间中的旋转,它们之间存在一一对应关系(除了四元数的符号歧义)。
-
运算等价性:矩阵乘法 M1 × M2 对应四元数乘法 Q1 × Q2
矩阵逆 M^(-1) 对应四元数共轭 Q(对于单位四元数)
矩阵作用于向量 M × v 对应四元数作用于向量 Q × v × Q -
公式保持一致:M_final = M_pose × M_edit
Q_final = Q_pose × Q_edit
这两个公式在数学上是等价的,只是表示方法不同。

浙公网安备 33010602011771号