仿射变换和线性变换的区别

仿射变换和线性变换是数学和计算机图形学中常见的两种变换。它们在很多应用中都很重要,但它们之间存在一些区别。

  1. 定义:

    • 线性变换:线性变换保持向量空间的线性结构。对于向量空间中的任意向量u和v,以及标量a和b,线性变换T满足T(au + bv) = aT(u) + bT(v)。
    • 仿射变换:仿射变换可以看作是线性变换再加上一个平移。具体来说,仿射变换A可以表示为A(v) = T(v) + t,其中T是线性变换,t是一个固定的向量。
  2. 性质:

    • 线性变换保持原点不变,即线性变换下,原点映射到原点。
    • 仿射变换不一定保持原点不变,可以进行平移操作。
  3. 几何意义:

    • 线性变换包括旋转,缩放,和反射等操作,但不包括平移。
    • 仿射变换包括线性变换的所有操作外加平移。
  4. 矩阵表示:

    • 线性变换可以通过一个矩阵乘法来表示,即y = Ax,其中A是一个变换矩阵,x是一个向量。
    • 仿射变换通常通过增广矩阵来表示,即y = Ax + b,或者使用齐次坐标,将它表示为一个线性变换:[y; 1] = [[A; t] [x; 1]]。

总的来说,仿射变换是线性变换的扩展,它包括了线性变换的所有特性,并且增加了平移的能力。在很多应用中,仿射变换更为通用,因为它能够描述更丰富的变换类型。