符号
四元数定义在一个四空间中,基数为 {1, i, j, k}。汉密尔顿著名地把基本关系刻在都柏林布鲁厄姆桥的石头上:
我2 = j 2 = k 2 = ijk = -1。
有许多等效的四元数参数化,但这里我将使用 {scalar, vector } 形式。
1.) A = {a0, a } and B = {b0, b },其中 A 和 B 是四元数,a0 和 b0 是标量,a和b是三向量。
2.) X = { 0, x } 是向量四元数。
3.) (非交换)四元数积直接来自上述 i、j 和 k 的性质,A⊗B = {a0 b0 - a。b , a0 b + b0 a + a x b }
4.)四元数共轭是 A * = {a0, - a }
5.)四元数产物的共轭是共轭逆序的乘积。
(A⊗B) * = B * ⊗A *
6.)向量四元数的共轭是它的负数。X * = {0, - x } = -X
7.)四元数范数是 |A| = √(A⊗A * ) = √( a0² + a . a )
8.)单位四元数是范数为 1 的四元数。
9.) 一个单位三向量x = {x 1 , x 2 , x 3 } 与x。x = 1 可表示为单位向量四元数X = { 0, x }, |X| = 1。
10.)四元数向量 X 绕单位向量轴n旋转角度 θ的球面旋转为 Q⊗X⊗Q *,其中 Q 是四元数 {cos(θ/2), sin(θ/2) n } . 注意 |Q| = 1。
注意四元数向量积的形式。给定向量四元数 X 1 = { 0, x 1 ) 和 X 2 = { 0, x 2 },四元数积为 X 2 ⊗X 1 * = { x 1。x 2 , x 1 × x 2 }。四元数将点积作为标量部分和叉积作为矢量部分重新结合,一百多年前就分离了。这些产品都不是可逆的,但四元数的方式如下所述。
倒置
找到球面变换四元数 Q 12以旋转矢量 X 1以与矢量 X 2对齐。
从上面
X 2 = Q 12 ⊗X 1 ⊗Q 12 *
两边乘以 X 1 *,
X 2 ⊗X 1 * = Q 12 ⊗X 1 ⊗(Q 12 * ⊗X 1 * )
请记住,旋转轴n来自叉积x 1 × x 2,因此n。x 1 = 0. 和 Q * ⊗X * = (X⊗Q) * = X * ⊗Q,离开
X 2 ⊗X 1 * = Q 12 ⊗X 1 ⊗X 1 * ⊗Q 12 = Q 12 ⊗Q 12
所以四元数变换可以直接求解为
Q 12 = √(X 2 ⊗X 1 * )
四元数平方根由您自己决定。有很多方法可以做到这一点,考虑到速度和稳定性,最好的方法取决于您的应用程序。
——hth,
弗雷德·克林格纳