Unity编辑器-Scene面板里的万向锁现象

                           

  最近在学习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轴朝向你的左方。

(不知情的人可能还不知道,万向锁已经产生了)

                                                           

     3.这个时候,将坐标系改变为(Global世界坐标系),确实,(Global世界坐标系)的Scene面板里的x、y、x轴的方向的永远不会变的,y轴仍然指向上方。

                                                          

     4.但此时,你可以通过物体的Inspector面板上修改Rotation的Y和Z的值,你可以发现,无论是修改Y的值还是修改Z的值,物体总是围绕垂直于【天地间】的y轴进行转动----------------这就是传说中的万向锁。

                                                          

     5.个人经过实验并揣测,Transform面板Rotation的Y控制的是(Global世界坐标系)的y轴,而Z控制的是(Local自身坐标)的z轴。

        当 --巧合的(Global世界坐标系)的y轴  与  (Local自身坐标)的z轴  同时指向一个方向的时候,就会出现万向锁现象。

        然而(Global世界坐标系)的y轴的方向是始终不变的,并且经过很多实验发现 x轴无论怎么改变也不会有万向锁现象。

       

        总结:

     Local坐标 :z轴 (由Inspector面板Transform-Rotation-Z控制)
     Global坐标 :y轴 (由Inspector面板Transform-Rotation-Y控制)

   Inspector面板Transform-Rotation-X控制的具体是啥我也不太清楚。。。。。。GG。。。。没实验出来,若有大神见过此贴,懂得其中的缘由或者发现我的缺漏错误之处,请及时指出来!本人定查缺补漏!!

     


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值