GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili
变换分为缩放、旋转、平移
缩放
如下图从左边变换到右边
切变
如下图从左边变换到右边
旋转
如下图从左边变换到右边, 正方形边长为1
根据正方形右下顶点可得出
根据正方形左上顶点同理可得出
所以旋转矩阵为:
根据定义可知:
所以旋转矩阵的逆矩阵等于其转置矩阵:
线性变换可以统一成一个矩阵变换
平移
如下图
缩放、旋转、平移组合变换
Affine Map = Linear Map + Translation
仿射变换 = 线性变换 + 平移变换
目前无法使用一个矩阵变换,为了可以使用一个矩阵进行变换,引入齐次坐标。
齐次坐标
增加w坐标
2D
2D
vector + vector = vector
point - point = vector
point + vector = point
point + point = middle point
齐次坐标下矩阵表示平移
齐次坐标下仿射变换表示
齐次坐标下缩放变换矩阵
齐次坐标下旋转变换矩阵
齐次坐标下平移变换矩阵
结合顺序
矩阵相乘不满足交换律,运算意义为自右向左结合。
点P先平移后旋转表示如下:
点P先旋转后平移表示如下:
分解复杂变换
如下图要以图形左下顶点c为中心旋转,分解为3步:
1,平移图形至左下顶点c到原点,T(-c)。
2,旋转图形, R(a)。
3,平移图形至左下顶点回到原来位置, T(c)。
组合矩阵为:
3D变换
3D
3D
(x, y, z, w)表示3D顶点(x/w, y/w, z/w)
3D仿射变换