四元数学习笔记

基本公式

在这里插入图片描述

数学理解

two-sphere

由于四元数存在于四维空间,所以如何利用低维信息去理解高维信息就显得尤为重要。我们这里先用三维举个例子,三维的球用代数表示为x²+y²+z²=1,虽然球上面的点是由x,y,z三个参数来确定,但实际上我们只需要两个。假设取x和z表示,其中y可以通过x和z进行求解。那么,我们将y轴信息给隐去,只看投影平面,如下图所示。这张图的意思是,整个球在XOZ平面上投影是一个圆,当球面一点投影在圆上时,y=0;投影的位置位于圆内时,则分别两种情况,y>0处于北半球,y<0处于南半球。所以我们仅通过投影后的圆即可还原出整个球体。
在这里插入图片描述
让我们推广到四维,w²+x²+y²+z²=1中取x、y和z来表示超球。如下图所示,四维空间投影到三维超平面(w=0)可能是一个two-sphere。当投影点在整个two-sphere的边缘时,w一定为0,值得一提的是在这个空间内的四元数是一个纯四元数。当投影点落在two-sphere的内部时,也分为两种情况,w>0和w<0。但是我们可以发现这两种情况下对应的特征向量是一样的,所以我们将旋转矩阵向四元数转换时,是有两个对应值的,四元数的范围是2倍覆盖于3D旋转(2:1 mapping)。

胡尔韦兹定理

两个数(这里可能是数,可能是向量,取决于代数域的维度)相“乘”后的模长等于分别模长的乘积。那到底有多少个域满足这个代数的条件呢?胡尔韦兹就证明了 赋范可除代数只同构于一下四个代数:(1)实数R;(2)复数,记号为C;(3)四元数,记号为H;(4)八元数,记号为O。这个性质别看简单,但基本上算是非常核心的一个性质。为什么我要用四元数表示旋转?旋转最本质的特点是什么,就是不改变相对距离,你转个手臂不可能转个60度手变长了。用数学公式说明,就是假如x是单位四元数,当我一个任意向量y通过x进行旋转后,模长是不会发生变化的。

旋转轴垂直

为什么二维旋转可以交换?在三维旋转中先绕x旋转,在绕y旋转和先绕y旋转,在绕x旋转肯定是不一样的,具体看图。那我们在二维旋转中先转90°再转45°肯定和先转45°再转90°是一样的。究其根本,是二维旋转它首先就隐藏了一个非常重要的因素,就是旋转轴永远是垂直于二维平面的,也是固定的,在二维中无论怎么旋转,都是共面的。放到三维空间,旋转之所以存在次序性,之所以不能交换,是旋转轴可以跟向量成任意角度。如果你放到一个二维子空间里面去旋转,你依然可以满足交换性。

四元数旋转

我们想要的旋转有两个特点。1.和原来模长一样。我们把两边取模,根据胡尔韦兹定理,右边的模长就是q的模长乘以p的模长,q是单位四元数,所以前后模长一致,很符合我们的要求。2.还得是纯四元数,因为我三维向量映射到四维还得映射回去,那么纯四元数是必须的,如果脱离这个三维子空间,映射关系就变了。
1. 当w=0时,也就是三维坐标与旋转轴垂直时,因为旋转轴与向量垂直,导致旋转后的结果永远都是在三维子空间中,所以一次θ旋转就可以得到结果(这句话说的不妥,参照一般形式就可以理解),跟复数很类似。
2. 不垂直,w≠0,那么问题就麻烦了。在解决问题之前,还是来想一下,我们可以知道旋转过后的向量模长不变,但w有值,意味着它不在纯四元数所在的三维子空间了,它跑到四维空间了,那我们没办法映射回去了。怎么办?那我们用一下三维旋转思路,就是把旋转出去的向量给旋转回来,根据三维旋转的公式,向量在右边成了一个旋转矩阵的转置,正交矩阵转置等于逆,四元数的逆也就是共轭,那我们在q·p的右边再乘以一个逆。乘以这个逆,我们就可以变为虚四元数了,但是由于右乘了一个逆,右乘+逆,负负得正,等于朝同一个角度转了两次,我们就需要角度输入变为θ/2。
3. 一般形式下的四元数旋转,旋转轴与向量并不是垂直的,旋转会将原向量偏离三维子空间,需要再乘以共轭形式旋转回来,所以需要两次旋转,所以不能直接旋转θ角度。

直观理解

单位球代表着四元数投影到三维空间中保持不变的那一部分,代表着所有实部为0的四元数。实部为0~1的部分被投影到了单位球内部,负数实部的被投影到了单位球的外部。投影到三维空间上的点
四元数的乘法是什么意义呢?四维空间的旋转是怎么一回事呢?参考于二维平面的旋转投影到一维空间上,当旋转时,一维坐标会被拉伸,而四维空间的旋转则是相当于两个互相垂直的圆在同时做旋转,这是在乘以一个四元数所对应的几何意义。
在这里插入图片描述
两个圆都转了135度(jk圆和1i圆)
在这里插入图片描述
对于某个单位四元数,只要画一条连接1和这个对应的点的直线还有一个垂直于这个直线的圆然后同时旋转即可完成乘以这个四元数对应的几何意义。
在这里插入图片描述
左乘和右乘。当你左乘时,即是J在对i 做四元数的变换,那么直线是1到i,垂直于直线的圆是J到k。右乘时,I在对j 做四元数的变换,直线是1到j,圆是i到k
右乘(左手旋转)
在这里插入图片描述
左乘(右手旋转)
在这里插入图片描述

参考于
知乎最菜专家
3Blue1Brown

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值