最近在学习Unity,刚好学到API里四元数的这一章节,花了一天研究了复数和向量的各种数学计算问题,迷迷糊糊搞懂了四元数,也理解了欧拉角会产生万向锁这一现象的原理。
(有兴趣深入理解四元数的同学,可以看看这个网站(http://www.qiujiawei.com/understanding-quaternions/))
有事没事搞搞Unity,创建几个Cube玩玩,无意间被我发现了Unity-Scene面板里对物体的旋转也存在着万向锁现象。
可以通过对物体Inspector面板的Transform-Rotation参数和物体坐标系的转换来实现万向锁现象。
1.首先,随便拉进来一个Cube作为测试,这个时候坐标为(Local自身坐标)
2.在Cube的Inspector面板上修改Transform-Rotation-x为-90(即让该物体围绕x轴逆时针旋转90度),这时候你就会发现,在(Local自身坐标)下,蓝色的Z轴这个时候是朝向上方,而相应的绿色的Y轴朝向你的左方。
(不知情的人可能还不知道,万向锁已经产生了)