Bonus: Gimbal Lock
Krasjet*
(这个 Bonus 章节是由我很久之前的笔记修改而成,所以有些概念没有
从头开始介绍,但对理解应该不会造成太大的困难.如果你想了解的是四
元数的相关知识,请点击这里)
在这里,我会简单介绍一下使用欧拉角表示 3D 朝向 (Orientation) 或者
旋转时 Gimbal Lock(通常译为万向锁或者万向节死锁)的产生原因.虽然
这方面的资料很多,但是某些解释可能会让人比较费解(比如 Wikipedia
上那个球型 Gimbal 的动画),有时候直接从数学上来理解反而会更直观一
点.和四元数的教程一样,我们在这里使用的也是右手坐标系.
0.1 欧拉角
在介绍 Gimbal Lock 之前,我们需要先了解朝向和旋转的欧拉角表示方
法.因为欧拉角的资料有很多,我不会从它的最基础讲起.如果你不了解
什么是欧拉角,在继续阅读之前可以先读一下欧拉角的 Wikipedia.
首先,假设我们有一个物体,我们使用三个互相正交的坐标轴对它建立
一个坐标系:
𝑦
𝑧
𝑥
现在,我们的目标就是能改变这个物体的朝向.有一点需要注意的是,
朝向 (Orientation) 和方向 (Direction) 虽然看起来很像,但是它们是完全不
同的两个概念.朝向并不是使用一个向量定义的,我们通常会将朝向定义
为将某一个「正朝向」旋转至当前朝向所进行的变换,所以当你思考朝向
的时候,你需要想到的其实是一个旋转(想象一下,我们需要对物体的每
一个顶点都施加一个旋转的变换,将它变换到当前的朝向).
1
评论0
最新资源