万向锁-笔记

先记结论:

当第二轴旋转±90°时会产生万向锁,万向锁只发生在程序中,现实世界不会发生。

发生万向锁的底层原因是由于程序中会指定旋转顺序,且前后顺序为父子包含关系

旋转顺序:因为同样一组数据,例如{X:10,Y:20,Z:30},不同的旋转顺序Z>X>Y \ X>Z>Y,最终得到的姿态是不一样的。

父子包含关系:以Z>X>Y为例,Z轴旋转会影响XY轴,X轴旋转会影响Y轴,Y轴不影响其他轴。现实世界中,其中一轴旋转会带动另外两轴旋转,故不会存在一轴旋转,会使另外两轴发生重叠,形成万向锁。

以Unity为例,Inspector面板Rotation:[X:90  Y:10  Z:10],Unity默认旋转顺序为Z>X>Y。

Z轴为10,旋转10°,影响XY轴,带动XY轴旋转10°。

X轴为90,旋转90°,影响Y轴,带动Y轴旋转90°,此时Y轴与Z轴发生重叠。

Y轴为10,旋转10°,不影响其它轴。

在Unity中,当X轴=±90°时(因为Unity中X轴是第二旋转轴),此时不管怎么旋转ZY轴,都饶同一轴旋转。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容