既然我们知道了怎样对任意向量进行缩放,当然也就可以计算缩放后的基向量。这里只详细列出2D中的一个基向量的求法,其余的基向量依次类推。我们只给出其结果(注意下面采用列向量形式只是为了使等式的形式好看一些。)
通过基向量构造矩阵,得到以单位向量n为缩放方向,k为因子的缩放矩阵,如公式8.8所示:
3D中,基向量为:
以单位向量n为缩放方向,k为因子的3D缩放矩阵如公式8.9所示:
一般来说,投影意味着降维操作,有一种投影方法是在某个方向上用0作为缩放因子。这种情况下,所有点都被拉平至垂直的轴(2D)或平面(3D)上。这种类型的投影称作正交投影(或者平行投影),因为从原来的点到投影点的直线相互平行。
向坐标轴或平面投影
最简单的投影方式是向坐标轴(2D)或平面(3D)投影,如图8.15所示:
向坐标轴或平面投影在实际变换中不常发生,大多数情况是向低维的变换赋值,且要抛弃维数时。例如,将3D点赋值给2D点,抛弃z分量,只复制x和y。
通过使垂直方向上的缩放因子为零,就能向坐标轴或平面投影。考虑到完整性,下面列出这些变换矩阵,见公式8.10 - 8.14。
向任意直线或平面投影
也能向任意直线或平面投影,像往常一样,由于不考虑平移,这些直线或平面必须通过原点。投影由垂直于直线或平面的单位向量n定义。
通过使该方向的缩放因子为0能够导出向任意方向投影的矩阵,2D中的情况如公式8.15所示:
记住这里n垂直于投影直线,而不是平行。3D中,向垂直于n的平面投影的矩阵如公式8.16所示:
镜像
镜像(也叫做反射)是一种变换,其作用是将物体沿直线(2D中)或平面(3D中)“翻折”,图8.16展示了镜像的效果。
使缩放因子为-1能够很容易地实现镜像变换,设n为2D单位向量,公式8.17所示的矩阵将沿通过原点且垂直于n的反射轴来进行镜像变换。
3D中,用反射平面代替直线。公式8.18中的矩阵将沿通过原点且垂直于n的平面来进行镜像变换: