平移齐次坐标变换#

平移齐次坐标变换是用4×4齐次矩阵表示3维空间平移操作的数学工具,核心是将3维直角坐标中“非线性的平移”转化为4维齐次空间中“线性的矩阵乘法”,从而统一旋转、平移等变换形式。

1 数学表达#

变换对象:针对3维点的齐次坐标\( \widetilde{\boldsymbol{p}} = \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} \)(末尾维度固定为1,区分点与方向向量)。

核心矩阵:若点沿x、y、z轴分别平移\( t_x \)\( t_y \)\( t_z \),对应的平移齐次矩阵为:
\( {}^A T_B = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix} \)
矩阵左上角3×3为单位矩阵(无旋转/缩放),右上角3×1为平移分量(存储平移量),最后一行为固定的[0,0,0,1]。

变换过程:通过矩阵乘法完成平移,即\( \widetilde{\boldsymbol{p}}' = {}^A T_B \cdot \widetilde{\boldsymbol{p}} \),展开后对应3维直角坐标的平移\( \begin{bmatrix} x' \\ y' \\ z' \end{bmatrix} = \begin{bmatrix} x + t_x \\ y + t_y \\ z + t_z \end{bmatrix} \)

2 平移齐次坐标变换具体数值案例演#

以 “3 维点\( \boldsymbol{p} = (2, 3, 4) \)沿 x 轴平移\( t_x=5 \)、y 轴平移\( t_y=2 \)、z 轴平移\( t_z=0 \)” 为例,完整计算过程如下:

2.1 步骤 1:将 3 维直角坐标转为 4 维齐次坐标#

点的齐次坐标末尾固定为 1,因此:\( \widetilde{\boldsymbol{p}} = \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} = \begin{bmatrix} 2 \\ 3 \\ 4 \\ 1 \end{bmatrix} \)

2.2 步骤 2:构建平移齐次矩阵#

根据平移量\( t_x=5 \)\( t_y=2 \)\( t_z=0 \),代入平移齐次矩阵公式(左上角 3×3 为单位矩阵,右上角为平移分量):\( {}^A T_B = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 5 \\ 0 & 1 & 0 & 2 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

2.3 步骤 3:执行齐次变换(矩阵乘法)#

按 “4×4 矩阵 × 4×1 向量” 规则计算,结果为变换后的齐次坐标\( \widetilde{\boldsymbol{p}}' \)\( \widetilde{\boldsymbol{p}}' = {}^A T_B \cdot \widetilde{\boldsymbol{p}} = \begin{bmatrix} 1 & 0 & 0 & 5 \\ 0 & 1 & 0 & 2 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 2 \\ 3 \\ 4 \\ 1 \end{bmatrix} \)

计算每一行结果(第 i 行 = 矩阵第 i 行元素与向量对应元素相乘后求和):

  • 第 1 行:1×2+0×3+0×4+5×1=2+0+0+5=7

  • 第 2 行:0×2+1×3+0×4+2×1=0+3+0+2=5

  • 第 3 行:0×2+0×3+1×4+0×1=0+0+4+0=4

  • 第 4 行:0×2+0×3+0×4+1×1=1

最终得到:\( \widetilde{\boldsymbol{p}}' = \begin{bmatrix} 7 \\ 5 \\ 4 \\ 1 \end{bmatrix} \)

2.4 步骤 4:将齐次坐标转回直角坐标#

忽略齐次坐标末尾的 1,提取前 3 个分量即为平移后的直角坐标:\( \boldsymbol{p}' = (7, 5, 4) \)

2.5 步骤 5:结果验证#

对比原始点\( (2,3,4) \)与结果\( (7,5,4) \),x 轴增加 5、y 轴增加 2、z 轴不变,完全符合预设平移量,验证变换正确。