图形(变换1)

变换

Modeling 模型变换

Viewing 视图变换

二维变换:

缩放:

x' = sx

y' = sy

图形(变换1)_第1张图片

反转:

x' = -x

y' = -y

图形(变换1)_第2张图片

矩阵形式:

图形(变换1)_第3张图片

切变:

图形(变换1)_第4张图片

每个点纵坐标没发生变化。

y' = y

x' = x+ay

矩阵形式:

图形(变换1)_第5张图片

旋转

再不说别的信息的时候,默认绕(0,0)旋转,不说旋转方向,默认逆时针旋转

图形(变换1)_第6张图片

[ [a b ]

[c d ]] (x,y) =[ x',y']

(1,0) => (cos,sin) cos = a

sin = c

(0,1)=>(-sin,cos) -sin = b

cos = d

x' = ax = by

y' = cx + dy

图形(变换1)_第7张图片

x' = Mx 线性变换

平移:

图形(变换1)_第8张图片

x' = x + tx

y' = y +ty

仿射变换

图形(变换1)_第9张图片

平移并不属于线性变换(线性变换必须表示成一个向量*矩阵)

齐次坐标系

对于任何一个点(x,y) 写成 (x,y,0)T

对于任何一个2维的点写成(x,y,1)T

图形(变换1)_第10张图片

用齐次坐标可以通过增加一个维度来吧平移变换也写成矩阵形式

vector + vector = vector

point - point = vector

point + vector = point

point + point = ? (在齐次坐标的定义下 表示这两个点的中点)

人们就扩充了对这个的定义;

在2D中 (x,y,w) => (x/w , y/w , 1),w !=0 (为零就是向量了)

逆变换

图形(变换1)_第11张图片

变换的顺序非常重要

变换的分解:

图形(变换1)_第12张图片

写成矩阵形式是从右到左

3D中也是

point (x,y,z,1)T

vector (x,y,z,0)T

3D Point (x,y,z,w) 只有w=1的时候才表示三维中一个点

不等于1 就 (x/w , y/w , z/w, 1);

图形(变换1)_第13张图片

最后一行还是0001 最后一列还是 tx ty tz 1 可以想到:左上角3*3 就是三维中的线性变换

你可能感兴趣的:(engine,矩阵,线性代数)