强推中国大学MOOC万琳老师的网课

老师神颜,爱了爱了

数学基础

可以看这篇博客

https://www.cnblogs.com/wkfvawl/p/11643976.html

主要用到一些基础的线性代数的知识点

齐次坐标

齐次,字面上的意思大概是做一个统一。

基本变换 转移式----------
平移 \(x^{\prime}=x+T_{x}\)
\(y^{\prime}=y+T_{y}\)
对称(关于x轴)* \(x^{\prime}=x\)
\(y^{\prime}=-y\)
比例 \(x^{\prime}=x \times s_{x}\)
\(y^{\prime}=y \times s_{y}\)
错切 * \(x^{\prime}=x+d y\)
\(y^{\prime}=b x+y\)
旋转 \(x^{\prime}=x \cos \theta-y \sin \theta\)
\(y^{\prime}=x \sin \theta+y \cos \theta\)

*:老师ppt没有强调

为什么要引入齐次坐标?

  • 几何变换矩阵运算表示形式不统一

    为了运算统一

  • 对多个点同时进行相同的多次变换时,分别利用矩阵计算各点变换的计算量大

    这个比较好理解,类比acm中的矩阵快速幂,先求出转移矩阵效率高

什么是齐次坐标?

  • 定义:\((x,y)\)点对应的齐次坐标:\((x_h,y_h,h)x_h=h*x,y_h=h*y,h\neq0\)
  • 齐次坐标表示就是用 \(n+1\)维向量表示一个 \(n\)维向量
  • 以二维坐标系下点 \(p(4,3)\)为例: 齐次坐标表示为\(p(h_x,h_y,h_z)\) 具体可以为\(P(4,3,1), P(8,6,2)\)
  • 规范化:上例规范化齐次坐标表示\(P(4,3,1)\),即 \(h=1\)
  • \(h=0\) 表示无穷远的点

二维变换的矩阵

基于齐次坐标的变换可以全部统一为矩阵运算:

\[\left[\begin{array}{lll} x^{\prime} & y^{\prime} & 1 \end{array}\right]=\left[\begin{array}{lll} x & y & 1 \end{array}\right] \cdot T_{2D}=\left[\begin{array}{lll} x & y & 1 \end{array}\right] \cdot\left[\begin{array}{lll} a & b & p \\ c & d & q \\ l & m & s \end{array}\right] \]

  • 平移变换
\[\left[\begin{array}{l} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{lll} 1 & 0 & t_{x} \\ 0 & 1 & t_{y} \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]\]
  • 旋转变换
\[\left[\begin{array}{l} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{ccc} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]\]
  • 放缩变换
\[\left[\begin{array}{l} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{lll} s_{x} & 0 & 0 \\ 0 & s_{y} & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]\]

转移矩阵统一表示形式的好处

  1. 便于变换合成连续变换时,可以先得到变换的矩阵
  2. 便于硬件实现只需实现矩阵乘法

变换的性质

1.平移和旋转变换具有可加性

2.放缩变换具有可乘性

待更