四元数与旋转

四元数与旋转转自 http www cnblogs com kfqcome archive 2011 08 17 2143289 html 一 四元组基础 Q x y z w 其中 x y z 用来确定旋转轴 w 为旋转的角度 Q w xi yj

大家好,我是讯享网,很高兴认识大家。

转自:http://www.cnblogs.com/kfqcome/archive/2011/08/17/2143289.html

一.四元组基础

Q(x,y,z,w),其中x,y,z用来确定旋转轴,w为旋转的角度

Q=w+xi+yj+zk,i,j,k为三个虚轴的单位分量

I*j=k

J*k=i;

K*i=j;

叉乘:

c=a × b= 

| i     j     k| 
|a1  b1  c1|
 
|a2  b2  c2|
 
=(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1)

c也为一个向量,且c的长度为|a||b|sin(theta),垂直于ab所在的平面,方向由右手法则来判定,用右手的四指先表示向量a的方向,然后手指朝着手心的方向摆动到向量b的方向,大拇指所指的方向就是向量c的方向

 

 

1.  四元组相乘:

Q1=w1+x1i+y1j+z1k=(w1,v1)

Q2=w2+x2i+y2j+z2k=(w2,v2)

Q1*Q2=(w1*w2-<v1,v2>,w1*v2+w2*v1+v1xv2)

( w1+x1i+y1j+z1k)*( w2+x2i+y2j+z2k)

 =w1*w2-x1*x2-y1*y2-z1*z2+

  (W1*x2+x1*w2+y1*z2-z1-y2)i+

(y1*w2+w1*y2+z1*x2-x1*z2)j+

(w1*z2+z1*w2+x1*y2-y1*x2)k

         对于其中的轴部分,假如v1//v2,则有v1 x v2=0(平行向量的叉乘结果为0

2.  四元组的点乘,点乘积为数值:


讯享网

Q1.*Q2=w1*w2+<v1,v2>=w1*w2+x1*x2+y1*y2+z1*z2;

3.  数乘

         s为一实数,q为四元组,则有sq=qs

4.  共轭

p=(w,v),则p*=(w,-v)

 

(pq)*=q*p*

 

N(q)=w2+x2+y2+z2

q-1=q*/N(q)---------------à显然可得-1=(1,0)

 

 

二.使用四元数旋转向量

假如有一表示向量的四元组q=(w,v),对其应用旋转量p后的结果为:

        q’=pqp-1=(w,v’)

从上可以看出,计算的结果q’的实部和q的实部是相等的,并且有N(v)=N(v’)

 

如果N(q)=1,则可以令q=(cosa,usina)u也为一个单位向量,则q’qu旋转2a个弧度的结果

 

假如S(q)表示q的实部,则有2S(q)=q+q*

 

2S(pqp-1)= pqp-1+( pqp-1)*=pqp*+(pqp*)*=pqp*+pq*p*=p(q+q*)p*=2S(q)

(这里由于p是单位四元数,所以有p-1等于p*

 

 

小讯
上一篇 2025-02-05 20:10
下一篇 2025-02-27 16:38

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/65584.html