概念
一般可以用三个轴的欧拉角来表示旋转,这会出现万向节锁的现象。
万向节锁,如果按照全局坐标系是由于旋转后方向和某个坐标轴平行,按照局部坐标系则是旋转后有两个轴平行时,失去了一个轴的自由度。
引起的问题
有英文资料用摄像机旋转举例子,有些人误解为旋转到某个位置就无法跟踪了,其实只需要旋转底座仍然没有问题。那么到底万向节锁这个现象到底会导致什么问题呢,大部分资料没有说清楚。
万向节锁在工程中产生的问题不是计算公式除零异常,也不是变换矩阵奇异。它只导致动画过程中万向节翻转现象。因为在关键帧动画插值时出现错误,在连续过程中某一个轴的旋转角发生突变。
另外一个动画过程中出现的路线绕远现象也是欧拉角表示旋转的缺陷,无论是否出现万向节锁都存在。
解决方法
可以通过调整三个转轴的变换顺序解决,但是治标不治本,还是会在另外一种旋转方式下出现万向节锁。
用欧拉过滤可以避免欧拉翻转,但是不能解决路线绕远。
采用四元数的方法代替欧拉角能解决万向节锁和路线绕远现象。
参考资料
http://blog.163.com/shininglore@126/blog/static/96184180201110282379149