点的旋转(2):四元数的推导

版权声明:, https://blog.csdn.net/u011760195/article/details/85336183

前言

还记得上一节中我们怎么旋转一个二维向量的吗?
我们将其放入一个复平面中,通过乘子来旋转其所在的坐标系来得到结果
是的,跟2*3的例子一样,将该系下(1+0i)的位置变换至乘子r的位置,同时为了确保不会变形,我们限定乘子的模长为1(或者叫范数?随你啦),整个旋转看起来就像在圆的边上滑动。
下面让我们来看超复数:四元数,是如何推导的

推导

超复数

通过前一节,容易理解,我们旋转一个二维向量,做的工作仅仅只是把其坐标系的x轴上的1点旋转至乘子的位置
X ( A + B i ) X*(A+Bi)
如果我们扩充到三维空间呢?
不过这次旋转的对象从X变成了(X*(A+Bi)),我们记 P = X ( A + B i ) P = X*(A+Bi)

在前文 2* (-3)中,我们提到X轴旋转中划过的空间即是该维度(n=1维)的复空间(n+1维),是一个平面。

跟以前一样为了表示它的旋转,乘一个乘子 (C+Dj),j 垂直于平面P,如同复数定义的那样 j^2 = -1
P ( C + D j ) P*(C+Dj)
带回P
( X ( A + B i ) ) ( C + D j ) (X*(A+Bi))*(C+Dj)
化简:
X ( A C + B C i + A D j + C D i j ) X*(AC+BCi + ADj +CDij)
该式子表示单个轴——X的三维旋转

a = A C b = B C c = A D d = C D a = AC,b = BC,c = AD,d = CD
同时将 i×j 记为k
k = i j k = ij
k为同时垂直于i,j的一个轴
i,j,k此时构成一个右手系

我们得到两次乘子变换的一般形式
( a + b i + c j + d k ) . . . . (a+bi + cj +dk) .... ①
并称其为四元数
四元数是最简单的超复数

如果交换两个乘子的顺序呢?

仅需将①i,j位置互换即可,同样我们写成一般形式
( a + c i + b j + d j i ) (a+ci + bj +dji)
因为
j i = i j = k ji = -ij = -k
( a + c i + b j d k ) . . . . (a+ci + bj -dk)....②
此时②已经变成和①截然不同的怪物了,可见:旋转的顺序不同对应的结果完全不同

事实上,乘法的交换律是一种极其特殊的情况
在这里你可以停下来画一个空间坐标系,将一个点旋转两次,再将两次旋转顺序颠倒看看结果

它有什么性质?

跟复数一样
i 2 = j 2 = k 2 = 1 i^2 = j^2 = k^2 = -1
同时根据向量积
i j = k ij = k
j k = i jk = i
k i = j ki = j
i k = j ik = -j
k j = i kj = -i
j i = k ji = -k
i j k = k × k = k 2 = 1 ijk = k×k = k^2 = -1
至此,四元数的代数推导完毕,在后面我们将来了解四元数如何表达三维旋转。

猜你喜欢

转载自blog.csdn.net/u011760195/article/details/85336183