欧拉角和万向锁
欧拉角中的描述物体运动的方向的方式 :偏航-俯仰-滚转(yaw-pitch-roll),等价于围绕ZYX轴进行旋转。
如图,每次旋转有新的ZYX轴,绕着新的轴旋转。
但是这种表示方式会遇到万向锁(Gimbal lock)问题。
万向锁问题:如果第二次旋转的角度为90°,则有两个轴会重叠。损失了一个自由度
,比如
像这样绿色和蓝色重叠在一起,你绕蓝色或者绿色旋转,将会是同样的旋转。比如(20,90,160)与(0,90,180)图形朝向一样,下载了个blender尝试了一下。确实如此。
参考https://blog.csdn.net/weixin_43455581/article/details/108411948
https://blog.csdn.net/weixin_45888152/article/details/123142604
四元数解决了这个问题
四元数
符合左、右手法则,凭自己喜欢记忆。
四元数在空间几何中旋转的使用
四元数有以下两种表现形式,一种带角度便于理解、一种不带角度便于计算。(可以相互转换)
为了描述坐标系的旋转,我们使用单位四元数。这些四元数为一个单位大小,即
使用单位四元数更容易描述空间中的旋转
对用四元数表示旋转的公式理解,首先点P绕着旋转的轴是 i ,j,k的矢量和 然后旋转了40°,但是要以半角20°表示,为什么要用半角表示?原理还不太清楚,看其他人的大意是,P点经过q和q的逆 旋转到P’点,在四维空间中,四维旋转后的投影,既有形变,也有旋转。形变后的球不是我们想要的,于是右乘把形变抵消,留下旋转。轴前的系数平方和=1。 暂时还不太能深入理解,先了解点如何旋转,不过多深入。
参考
https://krasjet.github.io/quaternion/quaternion.pdf
3Blue1Brown
重投影误差
参考https://blog.csdn.net/weixin_49804978/article/details/121922128