中学的时候,老师肯定问过,二维平面内的两个向量要想可以表示二维平面任意的向量,需要满足什么条件?
不太严谨的答案:不考虑零向量的情况下,只要这两个向量不在一条直线即可。
到了高中还是大学,这个问题就会从二维变成三维。
不太严谨的答案变成了:不考虑零向量的情况下,只要不发生其他一条可以由另外两条表示即可。
那么,三维空间中的三个旋转怎么才能表示三维空间中的任意旋转呢?
不太严谨的答案:不考虑不旋转的情况下,只要不发生其中一个旋转可以由另外两旋转表示即可。
如果你能理解上面三个问题,那么可以继续探索万象锁了,欧拉角表示的原理本质上来说和最后一个问题相同,就是三维空间中的三个旋转怎么才能表示三维空间中的任意旋转的问题。
首先,不太严谨的说一下欧拉角是表示旋转的:假设旋转顺序xyz,物体先绕自己x轴旋转一个角度,然后再绕自己y轴旋转一个角度,最后再绕自己z轴旋转一个角度。
能不能理解万象锁的关键在于:千万不要认为三次旋转轴是互相垂直的!!!
为了更好的证明,三次旋转轴不互相垂直,假设物体xyz和空间xyz方向对齐
1.第一次旋转,旋转轴:空间x轴
2.第二次旋转,旋转轴:空间zy平面内某直线
3.第三次旋转,旋转轴:如果第二次旋转量不为0或180度,那么这条直线和zy平面肯定会存在夹角
第一次和第二次垂直,第二次和第三次垂直,第一次和第三次不一定垂直
好了,有了这个认识,再看万象锁的触发条件是第二次旋转90度,其实就是把第三次的旋转轴和第一次旋转轴在空间中重合了。两个轴重合旋转结果自然不可能表示空间中任意的旋转,就像被锁住了一样。