第三章、矩阵变换
本章讲解三维变换的基本知识,了解三维变换的数学表示及其在图形学中的意义。
目标:
- 基本矩阵变换:平移、缩放、旋转
- XNA库中的矩阵变换函数
- 学习几何变换的组合
3.1 基本变换
矩阵变换中最为基础的三种是:平移、缩放、旋转。每一种变换对应一类矩阵,每类矩阵都有其鲜明的特征。此处介绍使用四维矩阵表示三维变换。因为三维矩阵只能表示三维线性变换(旋转和缩放),不能表示平移、透视投影等,这也是第一章介绍齐次坐标系的意义。
基本的矩阵变换形式为:
pM=(x,y,z,w)∣∣∣∣∣∣a00a10a20a30a01a11a21a31a02a12a22a32a03a13a23a33∣∣∣∣∣∣=(x′,y′,z′,w′)=p′(1) (1) p M = ( x , y , z , w ) | a 00 a 01 a 02 a 03 a 10 a 11 a 12 a 13 a 20 a 21 a 22 a 23 a 30 a 31 a 32 a 33 | = ( x ′ , y ′ , z ′ , w ′ ) = p ′
这样的坐标变换可以看作 p p 在同一坐标系中的位置变化,也可以看作 在从一个坐标系变换到另一个坐标系。(即可以认为是点或向量 p p 在坐标系中移动,也可以认为是坐标系本身在移动)。
3.1.1 平移变换
平移变换是针对点的变换,向量的平移没有意义。
假设点
移动 u=(ux,uy,uz) u = ( u x , u y , u z ) , 到 p′=(x+ux,y+uy,z+uz,1) p ′ = ( x + u x , y + u y , z + u z , 1 ) ,该平移过程可用如下变换矩阵完成:
Mt=∣∣∣∣∣∣100