Gimbal Lock(万向节锁)在 Euler Angles(欧拉角)中的体现

来源:互联网 发布:淘宝 户外头巾 编辑:程序博客网 时间:2024/04/28 10:18

一般地,处理三维空间的旋转有两种方式:四元数法或者欧拉角


在unity引擎中选择了四元数法。


欧拉角方法就是简单的对物体自身xyz中某一轴的旋转,听起来很直观容易理解。但是欧拉角会出现Gimbal lock 问题,因为在一系列的对xyz轴的旋转中,物体自身对应的xyz轴本身也在跟随物体进行旋转,导致下一步的旋转受到影响,这也就是使用相对坐标系而没有使用绝对坐标系的问题所在。


这里写图片描述

图中红色为X轴,绿色为y轴,蓝色为z轴,物体为猴头 我们可以很自由的将模型按照任意一轴进行旋转。

当我们将物体按照y轴方向旋转90度

这里写图片描述

我们发现x轴和z轴重合了,这时旋转x轴和旋转z轴的效果就一模一样了,我们无法将物体按照之前的x轴方向进行旋转了。此时就被称作Gimbal lock


这个问题无法解决,但是当我们在旋转物体时,如果按照一定顺序,就可以避免某个我们需要的轴不被锁住。

这里写图片描述

X->Y->ZX->Z->YY->X->ZY->Z->XZ->X->YZ->y—>X

这里写图片描述

0 0
原创粉丝点击