仿射变换入门:从坐标、矩阵到椭圆与不变量

写在前面 仿射变换(affine transformation)是线性代数和几何之间非常实用的一座桥。它既可以解释“换坐标系后为什么同一个点会有不同坐标”,也可以解释图像处理中常见的平移、旋转、缩放、错切、投影近似和椭圆生成。理解仿射变换的关键不是记公式,而是把三件事分清: 点本身是几何对象,坐标只是它在某个坐标系下的表示。 矩阵描述的是“基向量如何被送到新的方向和尺度”。 仿射变换保持直线、平行性和线段比例,但通常不保持长度、角度和圆。 本文从最基础的坐标和矩阵讲起,然后推到直线、面积、圆锥曲线和实际编程。目标是:读完之后能把仿射变换用于推导,也能把它写进代码。 1. 坐标:点不变,表示会变 1.1 坐标依赖于基底 在平面直角坐标系 $xOy$ 中,点 $P=(4,3)$ 通常被理解为:从原点出发,沿 $x$ 轴正方向走 4 个单位,再沿 $y$ 轴正方向走 3 个单位。 用向量语言写,若 $\vec{i},\vec{j}$ 是标准正交基,则 $$ \overrightarrow{OP}=4\vec{i}+3\vec{j}. $$如果换一组基底,例如 $$ \vec{i}^{\prime}=2\vec{i},\qquad \vec{j}^{\prime}=\frac12\vec{j}, $$则同一个向量也可以写成 $$ \overrightarrow{OP}=2\vec{i}^{\prime}+6\vec{j}^{\prime}. $$所以同一个点在新基底下的坐标变成 $(2,6)$。这不是点移动了,而是表示方式变了。很多几何问题容易混乱,就是因为把“点的运动”和“坐标表示的改变”混在一起。 1.2 主动变换与被动变换 理解仿射变换时,建议区分两种视角: 主动变换:点真的被送到另一个位置。例如把图形旋转 30 度。 被动变换:点不动,只是观察它的坐标系变了。例如把坐标轴旋转 30 度。 两者公式很像,但矩阵方向往往相反。工程实践中,大多数图形库采用主动变换:给定点坐标 $x$,计算变换后的点 $x^{\prime}$。数学推导中,换基和坐标变换经常采用被动视角。写代码时必须确认自己使用的是列向量约定还是行向量约定,否则旋转方向、矩阵乘法顺序都会出错。 2. 线性方程组与行列式 2.1 二阶行列式的几何意义 二阶矩阵 $$ A= \begin{pmatrix} a & b \\ c & d \end{pmatrix} $$的行列式为 $$ \det(A)=ad-bc. $$它的几何意义是面积缩放因子。若两个基向量张成的平行四边形原面积为 1,经过矩阵 $A$ 变换后面积变成 $|\det(A)|$。符号则表示方向是否翻转:$\det(A)>0$ 保持方向,$\det(A)<0$ 翻转方向,$\det(A)=0$ 会把平面压扁到一条线或一个点。 ...

March 8, 2024 · 4 min

Start typing to search across the site.

    Ask this site Interface preview
    Current page This page

    A GUIDE TO THE WORK

    Find the thread between the projects.

    Ask across research, projects, and writing. Future answers will stay grounded in material published on this site.

    Research papers and directions Projects systems and outcomes Writing experiences and reflections

    Frontend preview · Nothing will be sent