四元数

四元数是比较复杂的,它是一个复数,由实部和虚部组成。

  • 复数的定义:


    四元数_第1张图片
    Paste_Image.png

    四元数_第2张图片
    Paste_Image.png

如果我们将平面上的x轴作为实轴,y轴作为虚轴。这样复数P就定义了一个p点,同时也定义了一个向量。

Paste_Image.png

如果我们将两个复数相乘。就可以把原来的向量旋转一定的角度得到一个新的向量 复数的乘法就是四元数旋转的本质。

Paste_Image.png
四元数_第3张图片
Paste_Image.png
  • 旋转以后:p'(2D)
四元数_第4张图片
Paste_Image.png

3D中的旋转如何用四元数表示呢?

这时我们的四元数就需要三个虚部和一个实部。这就是真正的四元数。

Paste_Image.png

3D空间中绕任意方向的旋转轴(n),旋转的角度为θ进行旋转就可以用以下四元数表示:

四元数_第5张图片
Paste_Image.png
四元数_第6张图片
Paste_Image.png
  • 旋转公式:


    Paste_Image.png

四元数的计算法则。

四元数作为复数,就会遵循复数的计算法则:
  负四元数:

四元数_第7张图片
Paste_Image.png
  • 单位四元数(代表没有旋转,没有角位移)
四元数_第8张图片
Paste_Image.png
四元数_第9张图片
Paste_Image.png
Paste_Image.png
  • 四元数的模(同向量差不多):
四元数_第10张图片
Paste_Image.png

四元数的模的几何意义:将旋转公式代入其中n代表旋转轴用一个单位向量表示即可,单位向量的模就是1,化简之后四元数的模为1,这种模为1的四元数是3D数学中使用最多的(规范化四元数)

四元数_第11张图片
Paste_Image.png
  • 复数的共轭(将虚部值取反)
Paste_Image.png
  • 四元数的共轭(也将虚部值取反):
四元数_第12张图片
Paste_Image.png
  • 四元数的逆公式(由于我们3D中旋转都使用的是规范化四元数,所以它的模为1,这样四元数的逆就等于四元数的共轭):
Paste_Image.png
  • 四元数的共轭几何意义就代表绕着与之前相反的方向进行旋转。


    Paste_Image.png
  • 四元数的叉乘,叉乘之后得到一个新的四元数:

四元数_第13张图片
Paste_Image.png
  • 编程时使用变换过的叉乘公式。
四元数_第14张图片
Paste_Image.png
  • 四元数的叉乘不遵循交换律。
四元数_第15张图片
Paste_Image.png

四元数表示旋转:

3D中的一个点p(x,y,z)以四元数的方式表示出来,并将它使用四元数进行旋转。


四元数_第16张图片
Paste_Image.png
  • 四元数绕n轴旋转一个点p,θ度,旋转的公式:


    Paste_Image.png
四元数_第17张图片
Paste_Image.png
  • 四元数的“差”(实际上为四元数的除法)
    一个四元数a表示一个方位,另外一个四元数b表示另一个方位,从方位a旋转一定的角度d到了方位b。(可以通过四元素的除法获得两个方向旋转的角位移)
四元数_第18张图片
Paste_Image.png
  • 四元数的点乘(相当于向量的点乘):
四元数_第19张图片
Paste_Image.png
  • 四元数的对数:
四元数_第20张图片
Paste_Image.png
  • 四元数的指数:
四元数_第21张图片
Paste_Image.png
  • 四元数的标量乘:
Paste_Image.png

你可能感兴趣的:(四元数)