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] [x′y′]=[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] [x′y′]=[0.5001][xy]
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] [x′y′]=[−1001][xy]
[ 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] [x′y′]=[10a1][xy]
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θ]
推导:
( 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} (x′y′)=(ACBD)(xy)(cosθsinθ)=(ACBD)(10)
得出 A = c o s θ , C = s i n θ A=cosθ,C=sinθ A=cosθ,C=sinθ
得出 B = − s i n θ , D = c o s θ B=-sinθ,D=cosθ B=−sinθ,D=cosθ
( 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) ⎝⎛x′y′1⎠⎞=⎝⎛100010txty1⎠⎞⎝⎛xy1⎠⎞
在此,你发现它多了一维,这说明:如果我们要对一个二维矩阵进行平移,我们需要用三维矩阵去控制它。
也就意味着,用一个三维的矩阵,不止可以将其平移,而是可以对它进行任意操作。
由此,引出了一个变换:仿射变换。
简单来说,仿射变换就是:线性变换”+“平移。
线性变换有三个特点:
仿射变换有两个特点:
可以发现,由于加入了平移,原点不变的特性消失了。
所有的仿射变换都可以用一个三维矩阵来表示。
然而,以上我们都讨论的是针对一张图片——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) ⎝⎜⎜⎛x′y′z′1⎠⎟⎟⎞=⎝⎜⎜⎛adg0beh0cfi0txtytz1⎠⎟⎟⎞⋅⎝⎜⎜⎛xyz1⎠⎟⎟⎞
在此引申出了一个哲学问题,要操作一个 n n n维的“东西”,则需要操作者(观察者)至少处于第 n + 1 n+1 n+1维。例如:
- 一个点处于任何一个位置,它都是一个点,它并不具有任何能表示自己的值。
- 对于一条线,也可以理解为一个线段,这个点就有了一个坐标,也就是我们小学时学过的——横坐标(x坐标)。
- 对于一个平面,一条线就成了向量,离开线的点也可以被一个平面发现。
- 对于一个空间,一个平面也有了位置,两个不相交的平面可以通过空间坐标来知道彼此的位置。
- 下一个维度,我个人的理解为时间,但由于我也是三维生物,我无法做出比喻。
设想一下,是否有一个可以在时间轴上任意穿梭的“东西”,它能知道我们宇宙中的一切呢?无论是宇宙的过去,或是宇宙未来的模样,对于它来说只是重设时间值这么一个简单的操作?