[线性代数]矩阵变换在几何中的体现:缩放、翻转、切片、旋转、平移矩阵;放射变换

1.缩放矩阵

几何图示

在这里插入图片描述

对应公式

x ′ = − x y ′ = y \begin{aligned} &x^{\prime}=-x \\ &y^{\prime}=y \end{aligned} x=xy=y

[ x ′ y ′ ] = [ s x 0 0 s y ] [ x y ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right]=\left[\begin{array}{cc} s_{x} & 0 \\ 0 & s_{y} \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right] [xy]=[sx00sy][xy]

带入数据

[ x ′ y ′ ] = [ 0.5 0 0 1 ] [ x y ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right]=\left[\begin{array}{cc} 0.5 & 0 \\ 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right] [xy]=[0.5001][xy]


2.反转矩阵

几何图示

在这里插入图片描述

对应公式

x ′ = − x y ′ = y \begin{aligned} &x^{\prime}=-x \\ &y^{\prime}=y \end{aligned} x=xy=y

[ x ′ y ′ ] = [ − 1 0 0 1 ] [ x y ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right]=\left[\begin{array}{cc} -1 & 0 \\ 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right] [xy]=[1001][xy]

3.切片(剪切)矩阵

几何图示

在这里插入图片描述

对应公式

[ x ′ y ′ ] = [ 1 a 0 1 ] [ x y ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right]=\left[\begin{array}{ll} 1 & a \\ 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right] [xy]=[10a1][xy]

4.旋转矩阵

几何图示

在这里插入图片描述

扫描二维码关注公众号,回复: 13825251 查看本文章

对应公式

R θ = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] \mathbf{R}_{\theta}=\left[\begin{array}{cc} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{array}\right] Rθ=[cosθsinθsinθcosθ]

推导:

  1. 取点 ( 1 , 0 ) → ( c o s θ , s i n θ ) (1,0)→(cosθ,sinθ) (1,0)(cosθ,sinθ)

( x ′ y ′ ) = ( A B C D ) ( x y ) ( cos ⁡ θ sin ⁡ θ ) = ( A B C D ) ( 1 0 ) \begin{aligned} &\left(\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right)=\left(\begin{array}{l} A & B \\ C & D \end{array}\right)\left(\begin{array}{l} x \\ y \end{array}\right)\\ &\left(\begin{array}{c} \cos \theta \\ \sin \theta \end{array}\right)=\left(\begin{array}{ll} A & B \\ C & D \end{array}\right)\left(\begin{array}{l} 1 \\ 0 \end{array}\right) \end{aligned} (xy)=(ACBD)(xy)(cosθsinθ)=(ACBD)(10)

得出 A = c o s θ , C = s i n θ A=cosθ,C=sinθ A=cosθ,C=sinθ

  1. 取点 ( 0 , 1 ) → ( − s i n θ , c o s θ ) (0,1)→(-sinθ,cosθ) (0,1)(sinθ,cosθ)
    ( − sin ⁡ θ cos ⁡ θ ) = ( A B C D ) ( 0 1 ) \begin{aligned} &\left(\begin{array}{c} -\sin \theta \\ \cos \theta \end{array}\right)=\left(\begin{array}{ll} A & B \\ C & D \end{array}\right)\left(\begin{array}{l} 0 \\ 1 \end{array}\right) \end{aligned} (sinθcosθ)=(ACBD)(01)

得出 B = − s i n θ , D = c o s θ B=-sinθ,D=cosθ B=sinθ,D=cosθ

5.平移矩阵

几何图示

在这里插入图片描述

对应公式

( x ′ y ′ 1 ) = ( 1 0 t x 0 1 t y 0 0 1 ) ( x y 1 ) \left(\begin{array}{l} x^{\prime} \\ y^{\prime}\\ 1 \end{array}\right) =\left(\begin{array}{ccc} 1 & 0 & t_{x} \\ 0 & 1 & t_{y} \\ 0 & 0 & 1 \end{array}\right)\left(\begin{array}{l} x \\ y\\ 1 \end{array}\right) xy1=100010txty1xy1

在此,你发现它多了一维,这说明:如果我们要对一个二维矩阵进行平移,我们需要用三维矩阵去控制它。

也就意味着,用一个三维的矩阵,不止可以将其平移,而是可以对它进行任意操作

由此,引出了一个变换:仿射变换。

仿射变换

简单来说,仿射变换就是:线性变换”+“平移

线性变换有三个特点:

  1. 变换前是直线,变换后依然是直线;
  2. 直线比例保持不变
  3. 变换前是原点,变换后依然是原点
    在这里插入图片描述

仿射变换有两个特点:

  1. 变换前是直线,变换后依然是直线。
  2. 直线比例保持不变。

可以发现,由于加入了平移,原点不变的特性消失了。

在这里插入图片描述
平移不是线性变换,而是仿射变换。

所有的仿射变换都可以用一个三维矩阵来表示。

  • Scale
    S ( s x , s y ) = ( s x 0 0 0 s y 0 0 0 1 ) \mathbf{S}\left(s_{x}, s_{y}\right)=\left(\begin{array}{ccc} s_{x} & 0 & 0 \\ 0 & s_{y} & 0 \\ 0 & 0 & 1 \end{array}\right) S(sx,sy)=sx000sy0001
  • Rotation
    R ( α ) = ( cos ⁡ α − sin ⁡ α 0 sin ⁡ α cos ⁡ α 0 0 0 1 ) \mathbf{R}(\alpha)=\left(\begin{array}{ccc} \cos \alpha & -\sin \alpha & 0 \\ \sin \alpha & \cos \alpha & 0 \\ 0 & 0 & 1 \end{array}\right) R(α)=cosαsinα0sinαcosα0001
  • Translation
    T ( t x , t y ) = ( 1 0 t x 0 1 t y 0 0 1 ) \mathbf{T}\left(t_{x}, t_{y}\right)=\left(\begin{array}{ccc} 1 & 0 & t_{x} \\ 0 & 1 & t_{y} \\ 0 & 0 & 1 \end{array}\right) T(tx,ty)=100010txty1

然而,以上我们都讨论的是针对一张图片——2D图形的变换。当变为3D物体时,我们只需要加一个坐标 z z z,就可以表示3D物体的放射变换,当然,“操作”这个三维矩阵的矩阵,自然就是4维的。
( x ′ y ′ z ′ 1 ) = ( a b c t x d e f t y g h i t z 0 0 0 1 ) ⋅ ( x y z 1 ) \left(\begin{array}{l} x^{\prime} \\ y^{\prime} \\ z^{\prime} \\ 1 \end{array}\right)=\left(\begin{array}{lllc} a & b & c & t_{x} \\ d & e & f & t_{y} \\ g & h & i & t_{z} \\ 0 & 0 & 0 & 1 \end{array}\right) \cdot\left(\begin{array}{c} x \\ y \\ z \\ 1 \end{array}\right) xyz1=adg0beh0cfi0txtytz1xyz1

在此引申出了一个哲学问题,要操作一个 n n n维的“东西”,则需要操作者(观察者)至少处于第 n + 1 n+1 n+1维。例如:

  1. 一个点处于任何一个位置,它都是一个点,它并不具有任何能表示自己的值。
  2. 对于一条线,也可以理解为一个线段,这个点就有了一个坐标,也就是我们小学时学过的——横坐标(x坐标)。
  3. 对于一个平面,一条线就成了向量,离开线的点也可以被一个平面发现。
  4. 对于一个空间,一个平面也有了位置,两个不相交的平面可以通过空间坐标来知道彼此的位置。
  5. 下一个维度,我个人的理解为时间,但由于我也是三维生物,我无法做出比喻。

设想一下,是否有一个可以在时间轴上任意穿梭的“东西”,它能知道我们宇宙中的一切呢?无论是宇宙的过去,或是宇宙未来的模样,对于它来说只是重设时间值这么一个简单的操作?

猜你喜欢

转载自blog.csdn.net/qq_36286039/article/details/124151037
今日推荐