三维空间中两次旋转等效为一次旋转的计算方法(四元数)

本文介绍了如何使用四元数来表示三维空间中的旋转,并证明了两次旋转可以通过一次旋转等效。通过四元数的乘法,详细推导了两次旋转的坐标变换公式,并得到了等效的旋转角度和旋转轴。四元数的这种方法简化了三维旋转的计算。
摘要由CSDN通过智能技术生成

首先介绍一下四元数:
四元数是一种高阶复数,其形式如下:
H = s p a n { 1 , i , j , k } \mathbb{H} = span\{1,i,j,k\} H=span{ 1,i,j,k}, q = a + b i + c j + d k q = a + bi+cj+dk q=a+bi+cj+dk
其中 i i i, j j j, k k k, 为虚数,其运算方法如下:
i 2 = − 1 i^2 = -1 i2=1, j 2 = − 1 j^2 = -1 j2=1, k 2 = − 1 k^2 = -1 k2=1
i × j = k i \times j = k i×j=k, i × k = − j i \times k = -j i×k=j, j × k = i j \times k = i j×k=i, j × i = − k j \times i = -k j×i=k, k × i = j k \times i = j k×i=j, k × j = − i k \times j = -i k×j=i.
i × 1 i \times 1 i×1 = 1 × i 1 \times i 1×i = i i i, j × 1 j \times 1 j×1 = 1 × j 1 \times j 1×j = j j j, k × 1 k \times 1 k×1 = 1 × k 1 \times k 1×k = k k k
(与向量叉乘较为类似)
q = a + b i + c j + d k q = a + bi +cj +dk q=a+bi+cj+dk 的共轭四元数:
q ∗ = a − b i − c j − d k q ^* = a - bi - cj - dk q=abicjdk
满足: q q ∗ = a 2 − ( b i + c j + d k ) 2 = a 2 + b 2 + c 2 + d 2 − b c k + b c k − c d i + c d i − b d j + b d j = a 2 + b 2 + c 2 + d 2 = ∣ q ∣ 2 q q^* = a^2 - (bi + cj + dk)^2 = a^2 + b^2 + c^2 +d^2 - bck + bck - cdi + cdi -bdj + bdj = a^2 +b^2 + c^2+d^2 = |q|^2 qq=a2(bi+cj+dk)2=a2+b2+c2+d2bck+bckcdi+cdibdj+bdj=a2+b2+c2+d2=q2
其中 ∣ q ∣ |q| q q q q 模长,其定义如下
∣ q ∣ = a 2 + b 2 + c 2 + d 2 |q| = \sqrt{a^2+b^2+c^2+d^2} q=a2+b2+c2+d2
两个不同四元数相乘:
q 1 = a 1 + b 1 i + c 1 j + d 1 k q_1 = a_1 + b_1i +c_1j +d_1k q1=a1+b1i+c1j+d1k
q 2 = a 2 + b 2 i + c 2 j + d 2 k q_2 = a_2 + b_2i +c_2j +d_2k q2=a2+b2i+c2j+d2k
q 1 q 2 = a 1 a 2 − b 1 b 2 − c 1 c 2 − d 1 d 2 + a 1 b 2 i + a 1 c 2 j + a 1 d 2 k + a 2 b 1 i + a 2 c 1 j + a 2 d 1 k + ( c 1 d 2 − c 2 d 1 ) i + ( d 1 b 2 − d 2 b 1 ) j + ( b 1 c 2 − c 1 b 2 ) k q_1q_2 = a_1a_2 - b_1b_2 - c_1c_2 - d_1d_2 + a_1b_2i + a_1c_2j +a_1d_2k + a_2b_1i +a_2c_1j +a_2d_1k +(c_1d_2-c_2d_1)i + (d_1b_2-d_2b_1)j + (b_1c_2-c_1b_2)k q1q2=a1a2b1b2c1c2d1d2+a1b2i+a1c2j+a1d2k+a2b1i+a2c1j+a2d1k+(c1d2c2d1)i+(d1b2d2b1)j+(b1c2c1b2)k
如果我们将 u ⃗ = ( b 1 i + c 1 j + d 1 k ) \vec u = (b_1i+c_1j+d_1k) u =(b1i+c1j+d1k) v ⃗ = ( b 2 i + c 2 j + d 2 k ) \vec v =(b_2i + c_2j +d_2k) v =(b2i+c2j+d2k) 分别视为两个向量,其中 ( i , j , k ) (i,j,k) (i,j,k)构成正交基矢量,则有:
q 1 q 2 = a 1 a 2 − u ⃗ ⋅ v ⃗ + Q ( a 1 v ⃗ + a 2 u ⃗ + u ⃗ × v ⃗ ) q_1q_2 = a_1a_2 - \vec u \cdot \vec v + Q(a_1 \vec v +a_2 \vec u + \vec u \times \vec v) q1q2=a1a2u v +Q(a1v +a2u +u ×v )
(其中Q()是将单位向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值