四元数(Quaternion)是由爱尔兰数学家 哈密顿(Hamilton)在1843年发明的概念。四元数的乘法不符合交换律(commutative law)。
四元数 可以描述为 (x * i, y * j, z * k, w) ,其中(x,y,z)表示虚部,w表示实部。
四元数 最大的价值在于 描述旋转,解决三维中的 万向节锁 的问题。
万向节锁:
三维中的旋转通常用绕 XYZ 三个轴的旋转来表示,这个旋转角度即 欧拉角,也就是经常说的 Pitch、Yaw、Roll。
采用欧拉角 描述旋转的 优点是直观简单(矩阵乘),容易理解,旋转过程分解为:按照一定的顺序(比如X、Y、Z) 依次独立地绕轴旋转。
这种独立的旋转带来了一个问题,也就是 未考虑到旋转之间的关联性。
假设 物体先绕转X轴旋转,然后再绕Y轴,最后绕Z轴选择,当绕Y轴旋转90度之后 万向节锁 的问题就出现了,因为X轴已经被求值了,它不再随同其他两个轴旋转,这样X轴与Z轴就指向同一个方向(它们相当于同一个轴了)。
欧拉角 与 四元数
欧拉角可以和四元数进行相互转换,一个四元数可以 由欧拉角(对应 φ,θ,ψ)变换得到:
同样,欧拉角 也可以通过四元数 变换得到:

四元数由哈密顿于1843年发明,用于描述三维旋转并解决万向节锁问题。四元数表示为(x*i, y*j, z*k, w),其中(x,y,z)是虚部,w是实部。万向节锁在欧拉角表示的旋转中出现,当绕Y轴旋转90度后,X轴和Z轴指向相同方向。四元数能有效避免这个问题,并且可以与欧拉角相互转换。文章提供了四元数类的代码实现。"
117544567,10536300,三星Note3 USB3.0实测:速度提升20%,"['Android', 'USB技术', '手机评测', '数据接口', '移动存储']
最低0.47元/天 解锁文章
775

被折叠的 条评论
为什么被折叠?



