基础知识
对于四元数,大概可以理解为虚数z = a +i·b的一种拓展表述。
关于四元数之间的乘法,有如下运算规则:
性质与拓展
性质了解
对于一个四元数q,若使之表述一个旋转的过程。
个人理解
对于四元数,由于其具有四个变量,可以被看做是一个四维向量,我们一般研究的单位四元数存在于思维空间的一个球面上。对于乘法qaqb,可以看做对四元数qa进行qb右旋转,或者说对qb进行一个qa左旋转。任何一个四维旋转都可以唯一的拆分为一个左旋转qL和一个右旋转qR,即为qL· p· qR ,旋转的结果当然也是一个四元数。
需要注意的是,上面我们对四元数进行的都是四维旋转,而非我们需要的三维旋转。
四维的事情太抽象,我们想一想二维和三维之间的关系吧~
二维旋转可以认为是三维旋转的一个特例,或者说,子集,我们咋三维空间划分出一个二维的超平面,在这上面,我们可以对一个向量进行二维的旋转。
同理,我们在四维空间划分出一块三维空间超平面,而这个超平面正是落满了纯四元数,即qw = (0,wx, wy, wz),第一项为零保证了纯四元数存在于四维空间的三位超平面上,并且与三位空间中的三维向量存在一个一一对应的关系,于是我们产生了q*qw*q-1的这样的表达式,其中q为单位四元数。
这样的操作有什么优点呢,它能够通过左乘右乘互逆的一对单位四元数来将四元数限制在三维超平面上,该运算形式能够限制运算结果所在的空间,在这种情况下,我们能将三维向量旋转后,依然得到一个三维向量,(这里的三维向量指的是四元数空间的三维超平面上的向量)。
搬来知乎上的一幅图,可能可以更好地表达这个含义:
三维超平面上的向量左乘后,做出了q的左旋转,走出了三维超平面的束缚,右乘q-1的操作则将该四维向量拽回了三位超平面。
对于四元数,形式上感觉和极坐标有一些相似之处:
极坐标是给定规定的极轴,我们给定偏转角度与长度,以此来确定点或线的情况;
四
元
数
p
=
[
c
o
s
(
θ
/
2
)
,
v
⋅
s
i
n
(
θ
/
2
)
]
T
四元数p= [cos(\theta /2), v·sin(\theta /2)] ^T
四元数p=[cos(θ/2),v⋅sin(θ/2)]T
则是能够表明旋转轴和旋转角度,以此来确定四维旋转的特性。
相似地,我们对旋转矩阵与解析几何(这里指通过坐标系量化的图形表示方式)也进行类似的思考:
旋转矩阵分三次,给定了各个方向需要旋转的角度,不同的旋转方式会得到不同的量化指标;
坐标系表示同样可以分三次(以立体坐标系为例),给定了各个点与原点的相对位置,并且不同的坐标系建立方式(直角与斜角系,笛卡尔系与球系、圆柱系)会得到不同的量化指标。