四元数与旋转的关系,unity验证

先介绍一下四元数与旋转的关系,之后在Unity中进行仿真看是否和理论一致。

四元数

先介绍一下四元数的概念:
首先四元数的定义与复数非常相似:
复数的定义为:
z=a+bi z=a+bi z=a+bi
其中: i2=−1,a、b∈Ri^2=-1,a、b\in\mathbb{R}i2=1,abR
我们对四元数的定义为:
q=a+bi+cj+dkq=a+bi+cj+dk q=a+bi+cj+dk
其中: i2=j2=k2=ijk=−1,a、b、c、d∈Ri^2=j^2=k^2=ijk=-1,a、b、c、d\in\mathbb{R}i2=j2=k2=ijk=1,abcdR
这里的四元数仅仅只是这样定义的,只需要记住四元数的定义和他的几个性质即可。理解旋转不需要理解四元数在高维空间的意义,也不需要知道四元数的其他性质。
同时我们也采用另一种方式(向量、矩阵)的形式来存储四元数。
比如q=[s,v].(v=[x,y,z],s,x,y,z∈R)q=[s,\mathbf v].(\mathbf v=[x,y,z],s,x,y,z\in\mathbb{R})q=[s,v].(v=[x,y,z],s,x,y,zR)
其中s,x,y,z分别对应我们的a,b,c,d

四元数的性质

四元数的加法和减法

四元数的加法和减法与复数的加法与减法类似:
加法:
q1=a1+b1i+c1j+d1kq_1=a_1+b_1i+c_1j+d_1k q1=a1+b1i+c1j+d1k
q2=a2+b2i+c2j+d2kq_2=a_2+b_2i+c_2j+d_2k q2=a2+b2i+c2j+d2k
q1+q2=(a1+a2)+(b1+b2)i+(c1+c2)j+(d1+d2)kq_1+q_2=(a_1+a_2)+(b_1+b_2)i+(c_1+c_2)j+(d_1+d_2)k q1+q2=(a1+a2)+(b1+b2)i+(c1+c2)j+(d1+d2)k
可以看到我们的四元数的加法和减法是符合各分量相加的,减法同理:
q1=a1+b1i+c1j+d1kq_1=a_1+b_1i+c_1j+d_1k q1=a1+b1i+c1j+d1k
q2=a2+b2i+c2j+d2kq_2=a_2+b_2i+c_2j+d_2k q2=a2+b2i+c2j+d2k
q1−q2=(a1−a2)+(b1−b2)i+(c1−c2)j+(d1−d2)kq_1-q_2=(a_1-a_2)+(b_1-b_2)i+(c_1-c_2)j+(d_1-d_2)k q1q2=(a1a2)+(b1b2)i+(c1c2)j+(d1d2)k
根据四元数的第二种表示形式,我们有:
q1=[s1,t1],q2=[s2,t2]q_1=[s_1,\mathbf t_1],q_2=[s_2,\mathbf t_2]q1=[s1,t1],q2=[s2,t2]
则有:
q1±q2=[s1±s2,t1±t2]q_1 \pm q_2=[s_1 \pm s_2,\mathbf t_1 \pm \mathbf t_2]q1±q2=[s1±s2,t1±t2]

四元数的乘法

四元数的乘法是比较特殊的,首先四元数的乘法不遵循交换律。
我们先推导一下四元数的乘积,以及他的表示:
q1=a1+b1i+c1j+d1kq_1=a_1+b_1i+c_1j+d_1k q1=a1+b1i+c1j+d1k
q2=a2+b2i+c2j+d2kq_2=a_2+b_2i+c_2j+d_2k q2=a2+b2i+c2j+d2k
q1q2=(a1+b1i+c1j+d1k)∗(a2+b2i+c2j+d2k)=a1a2+a1b2i+a1c2j+a1d2k+a2b1i+b1b2i2+b1c2ij+b1d2ik+a2c1j+b2c1ji+c1c2j2+c1d2jk+a2d1k+b2d1ki+c2d1kj+d1d2k2q_1q_2=(a_1+b_1i+c_1j+d_1k)* (a_2+b_2i+c_2j+d_2k)\\=a_1a_2+a_1b_2i+a_1c_2j+a_1d_2k\\+a_2b_1i+b_1b_2i^2+b_1c_2ij+b_1d_2ik\\+a_2c_1j+b_2c_1ji+c_1c_2j^2+c_1d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值