Unity3D 万向锁问题
1.问题 描述
在 unity3D中,对欧拉角的旋转顺序为Y-X-Z.
那么我们可以通过一个Cube来直观看到这种现象。
创建一个Cube,我们只要按照 Y-X-Z顺序 操作Cubu的Transform属性面板的欧拉角参数,观察变化,然后在反过来 z-x-y顺序再操作变化,就能够发现这个现象。
如果按照Y-X-Z的方式选转就会有万向锁现象出现。反向就是正常的。
所以可以推论,假设我们的旋转顺序为 z-x-y。 我们就可以避免出现万向锁。
当然。采用 四元数也会避免万向锁。所以遇到万向锁将有这种 方案选择。
四元数会更干脆更好用一些
在做各种角度相关的问题时,我们需要区分哪种情况会出现万向锁。 欧拉角虽然会出现万向锁,但是在很多方面使用起来却很方便。
因为万向锁时旋转 时产生的,所以假设我们是使用欧拉角来表示角度。而不是旋转。就能避免陷入万向锁的坑里。而做旋转就使用四元数。