接下来我们讨论矩阵的平移、投影变换,在计算机图形学中这两种变换也及其常用。
一、4x4矩阵
在讨论位移矩阵前,我们需要引出4x4矩阵的相关概念。
4D向量有4个分量,前三个是标准的x、y、z分量,第四个是w,有时称为齐次坐标。
我们可以把齐次坐标理解为更高维度的抽象。比如2D坐标系中一个点在2D的扩展坐标齐次坐标中将有无数的点对应。他的形式为(x,y,w)。对于不在w=1平面的点,我们可以通过将x、y除以w来将这个点投影到w=1的平面。所以2D坐标系中的齐次坐标(x,y,w)其实映射的实际2D点为(x/w,y/w)。3D坐标系同理。
为什么引入4x4矩阵,第一个原因是因为方便的记法,在平移矩阵中将会讨论。第二个原因是因为w的映射性质。
二、平移矩阵
在上一章中我们讨论的都是用3x3矩阵表示的线性变换,不包含平移。因为矩阵乘法的性质,零向量总是变化成零向量。显然无法描述分量加、减这样的平移操作。而4x4矩阵提供了数学上的技巧帮我们做到这一点。
暂时假设w总是等于1,那么,标准3D向量[x,y,z]对应的4D向量为[x,y,z,1]。任意3x3变换矩阵在4D中表示为:
可以发现中间的3x3矩阵依然可以代表线性变换改变向量的x、y、z分量,如果我们想屏蔽线性变换只需中间的3x3方阵改变为单元矩阵即可。而现在x、y、z分量同时被4x4矩阵的第四列所影响(如果矩阵以行为主,则是第四行)。只是因为我们都设为0,所以他并没有向量带来实际变换,但他却有加减的特性,利用此数学技巧我们可以利用矩阵的第四列实现向量的平移变换。