相比 2D 中的旋转变换,3D 中的旋转变换复杂了很多。关于 2D 空间的旋转,可以看这篇文章。本文主要粗略地探讨一下 3D 空间中的旋转。
旋转的要素
所谓旋转要素就是说,我们只有知道了这些条件,才知道怎么旋转一个物体。回忆 2D 空间中的旋转,我们需要确定旋转中心、旋转角以及旋转方向才能旋转一个图形。以此类推,到了 3D 空间,我们仍然需要确定三个要素:一个旋转轴、旋转角以及旋转方向。 下面,为了讲解的方便,旋转方向默认为:正对旋转轴正方向,按逆时针方向为旋转正方向,反之为旋转负方向。
旋转的几种情况
3D 中的旋转本质上可以分为下面三类情况: 1. 绕 x / y / z 轴旋转; 2. 绕通过原点的直线旋转; 3. 绕不通过原点的直线旋转。
可能有同学不理解为什么要分这么多情况讨论,其实这是一个将复杂的问题简单化的过程。在旋转 2D 空间中的物体时,我们也只是计算出绕原点旋转的公式,然后将旋转点平移到跟原点重合,再根据公式旋转物体,最后再平移回去。其实完全可以计算出一个绕任意轴旋转的通用公式,但那样会导致计算量更大。
绕 x / y / z 轴旋转
这是最简单的旋转情况,只要把 2D 中的旋转延伸到 3D 空间就可以了。