美文网首页
欧拉角与四元数

欧拉角与四元数

作者: 浮云匿晨晖 | 来源:发表于2017-01-08 15:39 被阅读148次

以前人们都用Euler Angles来描述几何体的旋转,Euler Angles通常包含XYZ三个旋转分量,也就是我们所熟知的分别绕X、Y、X轴旋转的度数。用Euler Angles表示旋转算是比较节省的了,仅仅利用三个实数就能表示空间中的任意旋转。

下面说说它的缺点:

1. 某些情况下会产生Gimbal Lock,Gimbal Lock是什么可以百度查查;

2. 计算机动画通常需要进行旋转插值,这样的话就需要对Euler Angles三个分量分别做插值,而这三个分量的插值都是相互独立的,最后的插值效果会不够平滑;

英国数学家William Hamilton在1843发明了Quaternion(四元数)。Quaternion是复数的扩展. 很快Quaternion就被应用来描述三维旋转。然而, 直到1985年, Quaternion在计算机动画模拟中的威力才被广泛认识。 1985年Ken Shoemake在他的"Animating Rotation with Quaternion Curves"一文中对Quaternion的原理与应用作了详尽的解释。

Quaternion是一个四维的矢量, 如下:

Q = [w x y z]

其复数形式如下:

Q = w + xi + yj + zk

在图形学中, 单位Quaternion常被利用来描述物体在三维空间中的旋转. 它的几何意义是物体绕轴旋转一个角度. 这个角度表示如下:

cos(θ/2) = w

与Euler Angles相比, Quaternion有很多的优点,前面提到的Euler Angles的两个大缺陷它都克服了。在动画模拟中, 经常需要对旋转作插值计算. 这时候, Quaternion具有矩阵和Euler Angles所不具有的优势: 对旋转进行光滑的插值计算. 它的结果是高质量的动画. 它是通过对角度进行线性插值(Linear Interpolation)得到的。

需要说明的是,Quaternion和矩阵一样,是纯粹的数学概念,不如Euler Angles那么直观。

相关文章

  • 欧拉角与四元数

    利用二元数(复数)表示一维平面的旋转;利用四元数表示三维平面的旋转。Understanding Quaternio...

  • 欧拉角与四元数

    以前人们都用Euler Angles来描述几何体的旋转,Euler Angles通常包含XYZ三个旋转分量,也就是...

  • 机器臂matlab篇

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

  • iOS SceneKit欧拉角转四元数

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

  • UE4 三种旋转(二)

    UE4 三种旋转(二) UE4 中旋转操作常用的方式:欧拉角、四元数和旋转矩阵。 欧拉角 四元数 利用四元数进行旋...

  • Cocos 3.x 四元数 rotateAroundLocal

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

  • 学习笔记2

    欧拉角和四元数 笔记主要摘自下列博文和回答中 如何通俗地解释欧拉角?之后为何要引入四元数? - 知乎 【Unity...

  • unity-四元数

    什么是四元数? 欧拉角和四元数,都是表示物体旋转的。但欧拉角有个万向节死锁的问题,为了解决这个问题,因此引入了四元...

  • 四元数 欧拉角

    关于四元数和欧拉角的一段引用 原文链接 That rotation though is still a quate...

  • 3D数学

    1, 向量 2, 矩阵 3, 欧拉角 4, 四元数 5, 坐标系变换 6, 齐次坐标与透视变换的推导 齐次坐标 向...

网友评论

      本文标题:欧拉角与四元数

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