四元数的简单介绍【后续补充】

四元数

介绍

四元数是一种数学工具,可以用来表示旋转和方向。在三维空间中,一个旋转可以通过绕一个轴旋转一定的角度来描述。这个轴可以用一个向量来表示,旋转角度可以用一个标量来表示。而四元数则使用一个四元组来表示这个旋转:

q = w + x i + y j + z k q = w + xi + yj + zk q=w+xi+yj+zk

其中, w w w 为标量部分, x , y , z x,y,z x,y,z 为向量部分, i , j , k i,j,k i,j,k 为虚数单位,满足:

i 2 = j 2 = k 2 = i j k = − 1 i^2 = j^2 = k^2 = ijk = -1 i2=j2=k2=ijk=1

四元数的乘法运算可以用来组合多个旋转,从而得到一个新的旋转。具体来说,假设我们有两个四元数 p p p q q q 分别表示两个旋转,则它们的乘积 p ∗ q p*q pq 表示将 q q q 所描述的旋转先进行,再进行 p p p 所描述的旋转。

在四元数中,单位向量 ( x , y , z ) (x,y,z) (x,y,z) 可以表示一个方向。具体来说,一个单位向量 ( x , y , z ) (x,y,z) (x,y,z) 可以表示一个绕以原点为中心、以该向量为轴的旋转。我们可以构造一个四元数:

q = cos ⁡ ( θ 2 ) + x sin ⁡ ( θ 2 ) i + y sin ⁡ ( θ 2 ) j + z sin ⁡ ( θ 2 ) k q = \cos(\frac{\theta}{2}) + x\sin(\frac{\theta}{2})i + y\sin(\frac{\theta}{2})j + z\sin(\frac{\theta}{2})k q=cos(2θ)+xsin(2θ)i+ysin(2θ)j+zsin(2θ)k

其中, θ \theta θ 表示旋转角度, ( x , y , z ) (x,y,z) (x,y,z) 表示旋转轴的方向向量。这个四元数描述了一个绕 ( x , y , z ) (x,y,z) (x,y,z) 轴旋转 θ \theta θ 角度的旋转。

因此,四元数可以用来表示旋转和方向。它们具有很多优点,比如可以进行快速的旋转和方向计算,并且可以轻松地组合多个旋转。

计算示例

以下是一个简单的四元数计算示例:

假设有两个四元数:

q 1 = 2 + i − j + 3 k q_1 = 2 + i - j + 3k q1=2+ij+3k

q 2 = − 1 + 2 i + 2 j − 4 k q_2 = -1 + 2i + 2j - 4k q2=1+2i+2j4k

要计算 q 1 q_1 q1 q 2 q_2 q2 的乘积,可以使用以下公式:

( a 1 + b 1 i + c 1 j + d 1 k ) ( a 2 + b 2 i + c 2 j + d 2 k ) = ( a 1 a 2 − b 1 b 2 − c 1 c 2 − d 1 d 2 ) + ( a 1 b 2 + b 1 a 2 + c 1 d 2 − d 1 c 2 ) i + ( a 1 c 2 − b 1 d 2 + c 1 a 2 + d 1 b 2 ) j + ( a 1 d 2 + b 1 c 2 − c 1 b 2 + d 1 a 2 ) k (a_1 + b_1i + c_1j + d_1k)(a_2 + b_2i + c_2j + d_2k) = (a_1a_2 - b_1b_2 - c_1c_2 - d_1d_2) + (a_1b_2 + b_1a_2 + c_1d_2 - d_1c_2)i + (a_1c_2 - b_1d_2 + c_1a_2 + d_1b_2)j + (a_1d_2 + b_1c_2 - c_1b_2 + d_1a_2)k (a1+b1i+c1j+d1k)(a2+b2i+c2j+d2k)=(a1a2b1b2c1c2d1d2)+(a1b2+b1a2+c1d2d1c2)i+(a1c2b1d2+c1a2+d1b2)j+(a1d2+b1c2c1b2+d1a2)k

q 1 q_1 q1 q 2 q_2 q2 带入上面的公式,得到:

( 2 ) ( − 1 ) − ( 1 ) ( 2 ) − ( − 1 ) ( 2 ) − ( 3 ) ( − 4 ) + ( ( 2 ) ( 2 ) + ( 1 ) ( − 1 ) + ( − 1 ) ( − 4 ) − ( 3 ) ( 2 ) ) i + ( ( 2 ) ( 2 ) − ( 1 ) ( − 4 ) + ( − 1 ) ( − 1 ) + ( 3 ) ( 2 ) ) j + ( ( 2 ) ( − 4 ) + ( 1 ) ( 2 ) + ( − 1 ) ( 2 ) + ( 3 ) ( − 1 ) ) k (2)(-1) - (1)(2) - (-1)(2) - (3)(-4) + ((2)(2) + (1)(-1) + (-1)(-4) - (3)(2))i + ((2)(2) - (1)(-4) + (-1)(-1) + (3)(2))j + ((2)(-4) + (1)(2) + (-1)(2) + (3)(-1))k (2)(1)(1)(2)(1)(2)(3)(4)+((2)(2)+(1)(1)+(1)(4)(3)(2))i+((2)(2)(1)(4)+(1)(1)+(3)(2))j+((2)(4)+(1)(2)+(1)(2)+(3)(1))k

化简后得到:

− 19 + 4 i − 4 j − 4 k -19 + 4i - 4j - 4k 19+4i4j4k

因此, q 1 q_1 q1 q 2 q_2 q2 的乘积为 − 19 + 4 i − 4 j − 4 k -19 + 4i - 4j - 4k 19+4i4j4k

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值