计算机图形学基础(四):矩阵变换
我们在各种软件中常见到的图形或者物体的变换,例如旋转、平移、放缩、投影等,都是以矩阵变换的形式来计算的,接下来讨论这些矩阵变换。
二维变换
可以用一个二维矩阵来表示二维空间运算:
放缩
放缩的矩阵运算可表示为:

自由拉伸
x轴和y轴方向的拉伸可分别表示为:
其中为拉伸角度的正切值

旋转
将一个图形逆时针旋转角度:

镜像
关于x轴和y轴分别作镜像变换:

组合变换
在进行多个变换时,假设先进行一个S变换,再进行R变换
,则有
,复合变换
,即可以用一个矩阵来表示若干个变换运算

三维变换
与二维变换对应的,三维变换在形式上很类似:
放缩
旋转
自由拉伸
法线向量变换
现在如果要对一个三维物体的表面以矩阵进行变换,假设变换前的法线向量为
,那么对法线向量同样进行矩阵
变换操作得到的新向量通常不会垂直于新的物体表面。我们定义法线向量
需要通过矩阵
的变换操作
才垂直新的物体表面,变换前物体表面的一条切线为
,变换后此切线变为
,那么有:
若要求解在物体进行变换后法线向量
的变换情况
:
平移(Translation)与仿射(Affine)
在二维空间中首先进行一个变换(拉伸、旋转、缩放),再进行一个平移变换
,可以用一个三阶方阵来表示:
坐标系变换
通常上来说一个坐标系统,包括一个原点和一组正交基
,则坐标系
可以被描述为:
假设在一个坐标系中使用作为原点,
为正交基,其中有一点
,进行坐标系变换后,使用
作为原点,
作为正交基

按照平移与仿射变换:
有:
即:
同理,扩展到三维空间上,有:

