DongGu
三维物体的空间变换

三维物体的空间变换

三维物体的空间变换

我们之前讲过二维图形的几何变换,为了将所有变换统一形式,我们引入了齐次坐标的概念。

通过齐次坐标,线性和非线性操作我们都可以整合在一个变换矩阵内,这不仅对二维图形有效,对三维物体也如此。

齐次变换矩阵

三维变换和二维变换的齐次变换矩阵相似性很高,我们在这里只做介绍,不做推导。

平移变换矩阵

这部分和二维变换是完全一样的,只不过多了一个维度

比例变换矩阵

时为均匀缩放,物体形状保持不变;否则为非均匀缩放,物体会沿不同方向拉伸或压缩。

反射变换矩阵

反射变换将物体关于某个坐标平面做镜像,本质上是把垂直于该平面的坐标分量取反。

关于 平面对称(即 坐标取反):

关于 平面对称(即 坐标取反):

关于 平面对称(即 坐标取反):

关于原点对称(三个分量同时取反):

错切变换矩阵

错切变换让物体的某个坐标分量随另一个坐标分量发生线性偏移,物体被“斜拉”但体积不变。

沿 轴方向错切( 影响 的偏移量):

沿 轴方向错切( 影响 的偏移量):

沿 轴方向错切( 影响 的偏移量):

旋转变换矩阵

三维旋转变换其实也可以看做二维旋转,比如绕x轴旋转,就可以看作在y-z平面上旋转,忽略x相关的值。

这样,我们可以根据二维旋转的变换矩阵写出三维旋转的变换矩阵。

绕x轴旋转:

绕y轴旋转:

绕z轴旋转:

但是我们发现,绕y轴旋转的矩阵格式和其他的不一样,下面我解释一下原因:

在三维空间中,标准的右手系满足一个循环顺序:

对于绕 轴,我们在 平面旋转,旋转从 轴向 轴移动(正向)。 对于绕 轴,我们在 平面旋转,旋转从 轴向 轴移动(正向)。 但是对于绕 轴,为了保持右手系的右手定则(大拇指指向 轴正方向),正向旋转其实是从 轴向 轴 移动。

如果你在写 轴旋转矩阵时,依然强行按照 的顺序(即先写 列,再写 列)去套用二维旋转公式,那么你看到的正向旋转实际上就变成了“逆时针的反向”。为了修正这个方向, 的正负号自然就颠倒了。

对于绕坐标轴旋转,我们已经有了具体公式,但是如果是绕空间中任意轴旋转,如何写旋转矩阵呢?

方法1:普通旋转公式的叠加

我们可以将旋转轴平移到原点,再旋转到与某个坐标轴重合,然后执行旋转操作,最后逆变换回去。将这几步的变换矩阵乘起来就得到了完整的旋转矩阵。

方法2:罗德里格斯公式(Rodrigues’ Rotation Formula)

它可以直接给出绕任意过原点轴旋转的矩阵,无需拆解为多步复合变换。下面我们详细推导。

罗德里格斯公式的推导

问题:给定一根过原点、方向为单位向量 的旋转轴,将任意向量 逆时针旋转角度 ,求旋转后的向量

核心思路:将 分解为平行于 的分量 和垂直于 的分量 。绕 旋转时, 不变,只有 在垂直于 的平面上旋转

第一步:分解

平行分量就是 上的投影:

垂直分量:

第二步:在垂直平面内建立正交基

已经在垂直于 的平面内。我们还需要另一个同样垂直于 、且与 正交的向量,作为旋转平面的“第二根坐标轴”。

用叉积构造:

由于 ,可以简化:

等长且正交,构成垂直平面内的一组基。

第三步:在垂直平面内做二维旋转

张成的平面上,将 旋转

第四步:组合结果

旋转后的向量 = 不变的平行分量 + 在垂直平面内旋转后的垂直分量:

代入

这就是罗德里格斯旋转公式的向量形式

矩阵形式

将叉积 写为斜对称矩阵乘法。定义:

则有 。同样地,

代入罗德里格斯公式:

(注:第一项的 前面我们加了一个单位矩阵 )

因此旋转矩阵为:

展开成完整的 齐次矩阵:

验证:退化到绕

,代入:

正是 ,说明公式正确。

具体例子

:将向量 绕轴 旋转 ,求旋转后的向量。

轴和 轴的角平分线方向。直观上, 绕这根斜轴旋转 应该会偏离 轴,转向 之间的某个方向。

已知

逐项计算:

代入公式:

验证长度:,与 一致,旋转保持长度不变。

总结

变换类型 自由度 说明
平移 3 矩阵最后一列前三个元素
缩放 3 对角线前三个元素
反射 3 关于坐标平面的镜像
错切 6 各有两个错切参数
绕坐标轴旋转 3 ,注意 的符号
绕任意轴旋转 4 罗德里格斯公式,轴方向(3) + 角度(1)

三维空间中的所有基本变换都可以用 齐次矩阵统一表达。对于绕任意轴的旋转,既可以用“平移到原点 → 对齐坐标轴 → 旋转 → 逆变换”的复合方式(方法1),也可以直接用罗德里格斯公式一步到位(方法2)。两种方法等价,选择哪种取决于应用场景的便利性。


这次的插图来自画师 ばなこ武丸

图片地址:https://www.pixiv.net/artworks/144860848

本文作者:DongGu
本文链接:https://donggu.xyz/2026/05/24/图形学入门/三维物体的空间变换/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可