欧拉角

作者: Levi_Wan | 来源:发表于2016-12-28 12:36 被阅读1235次

在我们的3D数学中,如果使用矩阵来旋转的话就会显得十分的复杂和笨拙。计算中使用最为广泛的旋转方式为欧拉角。
  欧拉角用三个旋转角表示3D空间中的方位和旋转(角位移),这三个旋转角都是绕着三个相互垂直的坐标轴旋转(可以是世界坐标系也可以是局部坐标系)同时也是计算机最能理解和高效的旋转方式。

Paste_Image.png

  heading-pitch-bank分别对应着三个相互垂直的轴向。

Paste_Image.png
  • heading:垂直向上的是heading角(yaw)(笛卡尔的y轴),控制3D中的左右旋转。

  • pitch角:绕x轴旋转时pitch角,控制着物体在3D中的上下旋转。

Paste_Image.png
  • bank(roll):z轴。
Paste_Image.png Paste_Image.png

3D中的经过旋转变换,就会旋转到一个新的方位,旋转前后所形成的夹角称为旋转角(也叫角位移)从上图可以看出使用欧拉角可以轻松的控制物体的旋转,无论物体在哪只需要控制它三个轴的旋转角就可以完成旋转。

相较于旋转矩阵的复杂变换,欧拉角轻巧明了。但是欧拉角也有需要缺点比如:无法使用欧拉角进行插值运算(如果你想进行插值需要先将欧拉角转换为矩阵或者四元数),还有万向锁现象。

万向锁:

万向锁是欧拉角最大的缺点,欧拉角在插值过程中很容易碰见万向锁现象。为什么会出现万向锁现象呢?
  万向锁:因为我们的欧拉角旋转是通过3个旋转角来控制的,但是这些旋转并不是同时进行的。它们是具有先后的顺序的。
比如我们来看看unity中的欧拉角旋转顺序:

Paste_Image.png

我们可以看出unity中的欧拉角是按照先旋转z轴,在旋转x轴,最后旋转y轴的顺序来进行的,所以它们是具有旋转顺序的,而这个顺序也是非常重要的。
  当我们旋转,由于旋转是有先后顺序,它们的三个轴向就存在着父子级关系。(如z轴为父级,那z轴旋转时会带动x轴,x轴旋转时则不会影响z轴),此时问题就发生了,如果x轴旋转了正负90度,那它很有可能就和z轴重合了。z轴在进行旋转时,就会带动x轴也旋转,这时就产生了万向锁现象。
  老外讲解万向锁的视频:讲得十分的棒!。
http://v.youku.com/v_show/id_XNjk1MTkzMTM2.html?from=s1.8-1-1.2&spm=a2h0k.8191407.0.0

万向锁的解决方案:

  • 使用欧拉角转化为四元数进行插值。
  • 改变三个轴的旋转次序(我目前就只能理解这个解决方案)

程序中的欧拉角使用3x3的旋转矩阵(RotationMatrix)来表示由于它是绕着三个相互垂直的轴向进行旋转,所以在旋转变换的时候,需要考虑将物体坐标系到世界坐标系的转化过程:

Paste_Image.png
  • 3x3的旋转矩阵:
Paste_Image.png

相关文章

  • 欧拉角

    在我们的3D数学中,如果使用矩阵来旋转的话就会显得十分的复杂和笨拙。计算中使用最为广泛的旋转方式为欧拉角。  欧拉...

  • 欧拉角

    个人理解思路 欧拉角===》旋转矩阵(一般直接得到单位正交阵)==》旋转向量(一个轴,一个角)==》旋转矢量(一般...

  • 欧拉角

    之前不明白欧拉角的定义,有一篇博客讲的很清楚。mark下https://www.matongxue.com/mad...

  • iOS SceneKit欧拉角转四元数

    使用欧拉角 使用欧拉角会造成万向锁,转成四元数就没有问题了

  • Unity-万向节死锁(Gimbal Lock)问题总结

    一、欧拉角 1.1 欧拉角定义 Unity API中对Transform.eulerAngles的定义是,本身是V...

  • Cocos 3.x 四元数 rotateAroundLocal

    一、欧拉角 如何通俗地解释欧拉角?之后为何要引入四元数?[https://www.zhihu.com/questi...

  • 相机跟随

    相机前向:front,由欧拉角计算,方向为(x,y,z)欧拉角:侧滚角、俯仰角、偏航角sin pitch =》yc...

  • 计算机图形学-欧拉角

    欧拉角(Euler angles) 什么是欧拉角:用来表示物体旋转用的一种方法 介绍如下图:xyz 是原始坐标轴(...

  • 机器臂matlab篇

    1.Matlab ——旋转矩阵,四元数,欧拉角之间的转换 matlab练习程序(旋转矩阵、欧拉角、四元数互转) 2...

  • 欧拉角说明

    一、欧拉角 静态的定义 对于在三维空间里的一个参考系,任何坐标系的取向,都可以用三个欧拉角来表现。参考系又称为实验...

网友评论

      本文标题:欧拉角

      本文链接:https://www.haomeiwen.com/subject/gcjyvttx.html