
笛卡尔坐标系就是直角坐标系和斜角坐标系的统称。 相交于原点的两条数轴,构成了平面放射坐标系。如两条数轴上的度量单位相等,则称
此放射坐标系为笛卡尔坐标系。两条数轴互相垂直的笛卡尔坐标系,称为笛卡尔直角坐标系,否则称为笛卡尔斜角坐标系。需要指出的是,请> 将数学中的笛卡尔坐标系与电影《异次元杀阵》中的笛卡尔坐标相区分,电影中的定义与数学中定义有出入,请勿混淆。二维的直角坐标系是由两条相互垂直、0 点重合的数轴构成的。在平面内,任何一点的坐标是根据数轴上对应的点的坐标设定的。在平面内,> 任何一点与坐标的对应关系,类似于数轴上点与坐标的对应关系。采用直角坐标,几何形状可以用代数公式明确的表达出来。几何形状的每一> 个点的直角坐标必须遵守这代数公式。
在笛卡尔坐标系中,线性变换的矩阵的表现形式可以这样:




但是,在笛卡尔坐标系中,平移变换却不能用两个矩阵的乘法表示。平移变换T的表现形式为
尽管,平移变换的矩阵表现形式和线性变换不一样,但是, 2 X 2 的矩阵是足以表示它们,为什么 Matrix 是个 3 X 3 的矩阵?
在图形学中,所涉及的变换包括平移、旋转、缩放。当以矩阵表达式来计算时,平移是矩阵相加,旋转和缩放则是矩阵相乘。如果将平移、旋转和缩放综合起来,可以这么表示:
其中:
- m1:旋转或缩放矩阵
- m2:平移矩阵
- p :原向量
- p’:变换后的向量
在图形学中,将两种简单变换的叠加:一个是线性变换,一个是平移变换,统称为“仿射变换” 。为了解决平移变换不能使用乘法的问题,引入了齐次坐标。
“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”——F.S. Hill, JR。
根据规则,定义坐标(1,2)可以使用(1,2,1),也可以使用(2,4,2),还可以使用(4,8,4),(8,16,8)…,即 (k,2k,k),k∈R(k,2k,k),k∈R 都是“合法”的齐次坐标表示,这些点都映射到欧式空间中的一点,即这些点具有 尺度不变性(Scale Invariant),是“齐性的”(同族的),所以称之为齐次坐标。
在齐次坐标系中,线性变换是如何表示的呢?比如,旋转和缩放:




这时,平移变换也可以使用矩阵乘法表示,也就是这样:


对于一个仿射变换T,可以表示成一个线性变换A后平移t:T(p)=Ap+t,其中p是待变换的点齐次坐标表示。T可以表示成如下的形式:
其中:
Matrix中9个值与仿射变换T的对应关系是这样的:
每个值的作用为:
- MTRANS_X、MTRANS_Y:作用于平移变换(Translate)
- MSCALE_X、MSCALE_Y:作用于缩放变换(Scale)
- MSCALE_X、MSKEW_X、MSCALE_Y、MSKEW_Y:作用于旋转变换(Rotate)
- MSKEW_X、MSKEW_Y:作用于错切变换(Skew)
平移变换
假定有一个点的坐标是,将其移动到
,再假定在x轴和y轴方向移动的大小分别为 dx和dy。此时
那么:
用矩阵表示就是:
旋转变换
围绕原点旋转变换
假定有一个点的坐标是,其与x轴的夹角为α,假设p点与原点的距离为r,当p绕着原点顺时针旋转θ,达到
。
此时:
如果用矩阵表示:
围绕某个点旋转
假定有一个点,绕着点