四元数和旋转矩阵的相互推导过程

每一个单位四元数都可以对应到一个旋转矩阵

单位四元数q=(s,V)的共轭为q*=(s,-V)

单位四元数的模为||q||=1;

四元数q=(s,V)的逆q^(-1)=q*/(||q||)=q*

一个向量r,沿着向量n旋转a角度之后的向量是哪个(假设为v),这个用四元数可以轻松搞定

构造两个四元数q=(cos(a/2),sin(a/2)*n),p=(0,r)

p`=q * p * q^(-1)这个可以保证求出来的p`也是(0,r`)形式的,求出的r`就是r旋转后的向量

另外其实对p做q * p * q^(-1)操作就是相当于对p乘了一个旋转矩阵,这里先假设q=(cos(a/2),sin(a/2)*n)=(s,(x, y, z))


两个四元数相乘也表示一个旋转
 Q1 * Q2 表示先以Q2旋转,再以Q1旋转

则这个矩阵为四元数和旋转矩阵的相互推导过程_第1张图片

同理一个旋转矩阵也可以转换为一个四元数,即给你一个旋转矩阵可以求出(s,x,y,z)这个四元数,

方法是:四元数和旋转矩阵的相互推导过程_第2张图片

你可能感兴趣的:(工作)