计算机图形学GAMES101(二)变换

本文最后更新于 2024年5月26日 下午

本节涉及的内容

1、2D变换:旋转、缩放、切变
2、齐次坐标
3、变换的组合

变换一般使用矩阵来表示

变换

  1. 缩放变换
    x’ y’代表变换后的坐标,s代表缩放的比例 ,x y代表原来的坐标
    在这里插入图片描述
  2. 镜像翻转
    在这里插入图片描述
  3. 切变变换
    在这里插入图片描述
  4. 旋转变换
    在这里插入图片描述
    以上的变换都属于线性变换,都可以使用矩阵的乘法进行表示,形式如下
    在这里插入图片描述
    一旦涉及到平移变换就没有办法使用矩阵的乘法来表示了(平移变换不是线性变换)
    在这里插入图片描述
    平移变换不是线性变换
    为了使得平移变换也能使用矩阵乘法的形式来表示,我们引入了齐次坐标
    二维空间的点写成
    在这里插入图片描述
    二维空间的向量写成
    在这里插入图片描述
    即使用n+1维坐标来表示n维空间,最后一维等于1代表点 ,等于0代表向量

使用齐次坐标的目的是为了平移变换也可以使用矩阵乘法的形式来表示,即
在这里插入图片描述
tx表示沿x轴方向的平移量
ty表示沿y轴方向的平移量

引入其次坐标后的计算

我们知道齐次坐标最后一维为0代表向量,为1代表点,那么齐次坐标怎么运算呢?
在这里插入图片描述
第一种形式,向量+向量=向量 。即(x1,y1,0)+(x2,y2,0)=(x1+x2,y1+y2,0+0=0)。最后一维还是0,表示向量。符合数学中的运算法则。
第二种形式,点-点=向量。即(x1,y1,1)-(x2,y2,1)=(x1-x2,y1-y2,1-1=0)。最后一维是0,表示向量。符合数学中的运算法则。
第三种形式,点+向量=点。即(x1,y1,1)+(x2,y2,0)=(x1+x2,y1+y2,1+0=1)。最后一维是1,表示点。该运算代表(x1,y1)这个点沿着向量(x2,y2)运动到了(x1+x2,y1+y2)这个坐标。
第四种形式,(x1,y1,1)+(x2,y2,1)=(x1+x2,y1+y2,1+1=2)其代表的点为(x/w,y/w,1)。如图:
在这里插入图片描述

仿射变换

类似于下面这种格式的变换叫做放射变换
在这里插入图片描述
写成矩阵乘法的形式
在这里插入图片描述

各种变换的矩阵形式

scale:缩放
rotation:旋转
translation:平移
在这里插入图片描述

逆变换

可以使得经过变换后的图形变为原来的图形的变换叫逆变换
逆变换在数学中体现为逆矩阵
在这里插入图片描述

变换的分解

如何经过变换得到右边的图形?
在这里插入图片描述
结果:(T表示平移,R表示按逆时针方向旋转)
在这里插入图片描述
可以看出:
在这里插入图片描述
这是因为矩阵乘法是不支持交换律的

所以该图形是经过了旋转45°后向右平移一个单位得到的
在书写时要写成:(矩阵从右往左运算)
在这里插入图片描述

变换的组合

当我们进行多次变换时,变换矩阵为A1,A2,A3,A4,An ,我们可以将这些矩阵都乘起来,得到一个最终的变换矩阵,然后再去乘以(x,y,1)
在这里插入图片描述

旋转的中心点不在圆心的情况

在这里插入图片描述


计算机图形学GAMES101(二)变换
http://example.com/2024/05/26/计算机图形学GAMES101(二)变换/
作者
莫予
发布于
2024年5月26日
许可协议