使用欧拉角旋转物体时,物体是按照自身坐标轴以一定的顺序进行旋转的,在unity中是按照,是按y->x->z
以下视频非常有用:
https://v.youku.com/v_show/id_XNzkyOTIyMTI=.html
看完之后感觉半懂不懂的,然后又看到一段话:
首先确定手机的物体坐标系朝向,假设z轴与手机屏幕垂直(手机平放于桌面)指向上方,
手机较短的一条边为x轴,较长的一条边为y轴(方向由手机尾部指向头部),物体坐标系的原点是手机左下角的顶点。(注意旋转顺序为zyx)
绕z轴旋转任意角度(注意x和y轴也跟着一起旋转),再绕y轴旋转90°,再绕x轴旋转任意角度。
通过多次尝试,会发现一个共同点:z轴永远是水平的, 通俗的说,手机永远也不会立起来(旋转形成的三维空间是固定的)!
本来以为手机会指向任何方向,但实际上手机好像是被锁在桌面上,只能指向水平的某个方向,这个现象就称为万向锁。
而如果绕y轴旋转不等于90°(1°也好89°也好),只要选择适当的绕x和z的角度,
就可以让手机指向三维空间中的任何一个方向,手机是自由的(旋转产生的三维空间不会完全重叠),也就不会遇到万向锁现象。
————————————————
版权声明:本文为CSDN博主「罗伯特祥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43455581/article/details/108411948
然后就明白了,只要第二个旋转的轴旋转90度,就会让第三个轴和第一个轴处在同一个平面。
然后移动第一个轴和第三个轴所产生的效果就相同了,这就产生了万向锁。