用四元数表示旋转简介

【写在前面】

四元数网上的资料很多,然后我觉得都是挺难懂的。即便到现在我也是一知半解。现在我将我一知半解的内容用自己的话简单地写下来,尽量避免使用数学公式,都是自己的话,表述可能不会很精准,有错误欢迎指出。日后有体会了,在更新。

——2020.12.16

【理解】

1、第一点理解:四元数就是表示四维空间坐标系。

2、为什么要用四元数表示旋转?

答:使用欧拉角表示旋转的时候,虽然简单,但是容易出现万向锁的问题。

3、为什么表示旋转的四元数“模”为1?

答:在二维空间(复数坐标系)里面,如果要让一个a向量旋转一个角度,那么只需要用这个a向量乘于一个和这个角度对应的b单位向量。如果乘于的向量不是单位向量,那么a向量在旋转的同时,其模也会发生变化。同理,在三维空间里面要让一个向量旋转一定角度也是乘于一个单位向量即可(这就是欧拉角表示法)。所以在四维空间里面的四元数也必须是单位的,这样才能保证旋转后原向量“模”不变。这也是为什么三维旋转可以先映射到四维空间,然后在映射回三维空间的原因。

4、为什么用四元数表示空间旋转的时候,要对原向量先左乘一个四元数,然后在右乘四元数的逆?

答:类比二维空间,二维空间如果对原向量先左乘一个单位向量,然后在右乘这个单位向量的逆。那么原向量会先旋转一个角度,然后在反方向旋转这个角度。最后效果就是等于没有旋转。二维空间出现这种情况的原因是因为在这个空间里面,不管怎么旋转,其旋转轴都是垂直于这个空间的,旋转后的向量永远与原向量处于同一个空间;在四维空间里面,一般旋转轴与向量并不是垂直的,旋转会将原向量偏离三维子空间,需要再乘以共轭形式旋转回来,所以需要两次旋转,所以就是左乘一个,右乘一个。

四元数表示旋转,本质上是用四维空间来控制三维空间的旋转。在四维空间里面,会有很多不可思议的东西,比如,四维空间里面存在两个圆,它们互相垂直但是又没有交点(想不到吧?)。因此,四维空间里面对原向量先左乘一个四元数,然后在右乘四元数的逆,这样旋转不是转回原来的位置,而是继续保持第一次旋转的方向继续旋转。(在四维空间里面,左乘一个数采用右手法则确定旋转方向,右乘一个数则采用左手法则)其实这也就是为什么,四元数公式里面使用的是半角,而不是全角,因为我们要旋转两次。

——2020.12.16

【引用】

四元数的可视化

quaternions

四元数——旋转

你可能感兴趣的:(用四元数表示旋转简介)