计算机图形学:基本二维几何变换

转载 2012年02月27日 16:28:08

1.二维平移矩阵

图片

2.二维旋转矩阵

首先确定基准点为坐标原点时点位置P进行旋转的变换方程:

图片

Φ表示点的原始角度位置与水平线的夹角,θ是旋转角。

在极坐标系中,点的原始坐标为

图片

我们就得到相对于原点,将位置(x,y)的点旋转的变换方程

图片

图片

将方程规范化为绕任意指定的旋转位置旋转的点的变换方程

图片

用矩阵形式表示

图片

3.二维缩放矩阵

图片

4.二维平移逆矩阵

对于平移变换,我们通过对平移距离取负值而得到逆矩阵。

图片

这产生相反方向的平移,而平移矩阵和其逆矩阵的成绩是一个单位矩阵。

5.二维旋转逆矩阵

图片

旋转角的负值生成顺时针方向的旋转,因而当任何旋转矩阵和其逆矩阵相乘时生成单位矩阵。

6.二维缩放逆矩阵

图片

该逆矩阵生成相反的缩放变换,因此任何缩放矩阵和其逆矩阵的乘积生成了单位矩阵。

二维复合变换

利用矩阵表达式,可以通过计算单个变换的矩阵乘积,将任意的变换序列组成复合变换矩阵composite transformation matrix)。由于一个坐标位置用齐次列矩阵表示,我们必须用表达任一变换次序的矩阵前乘该列矩阵。由于场景中许多位置用相同的顺序变换,先将所有变换矩阵相乘形成一个复合矩阵将是高效的方法。因此,如果我们要对点位置P进行两次变换,变换后的位置将用下式计算:

图片

7.复合二维平移

假如将两个连续的平移用于坐标位置P,那么最后的变换位置P'可以计算为

图片

其中P和P'表示为三元素、齐次坐标的列向量。

用复合矩阵表示为

图片

或者

图片

8.复合二维旋转

应用于P的两个连续旋转产生的变换为

图片

通过两个旋转矩阵的相乘,我们可以证明两个连续旋转是相加的

图片

因此,点旋转的最后最表可以使用复合变换矩阵计算为

图片

9.复合二维缩放

合并两个连续的二维缩放操作的变换矩阵,生成如下的复合缩放矩阵:

图片

图片

这种情况下表明,连续缩放的操作是相乘的。

10.通用二维基准点旋转

当图形软件包仅提供绕坐标系原点旋转函数时,我们可以通过完成下列平移-旋转-平移操作来实现绕任意选定的基准点的旋转。

1.平移对象使基准点位置一定到坐标原点;

2.绕坐标原点旋转;

3.平移对象使基准点回到其原始位置。

利用矩阵合并得到该序列的复合变换矩阵:

图片

11.通用二维基准点缩放

只有相对于坐标原点的缩放函数时的变换序列:

1.平移对象使固定点与坐标原点重合;

2.对于坐标原点进行缩放;

3.使用步骤1的反向平移将对象返回到原始位置。

将这三个操作的矩阵合并,就可以产生所需的缩放矩阵:

图片

12.通用二维定向缩放

参数Sx和Sy沿x和y方向缩放对象,可以通过在应用缩放变换之前,将对象所希望的缩放方向旋转到与坐标轴一致而在其他方向上缩放对象。

假如我们要在如图所示的方向上,使用参数s1和s2所指定的值作为缩放系数。为了完成这种缩放而不改变对象的方向,我们首先完成旋转操作,使s1和s2的方向分别与x和y轴重合。然后应用缩放变换S(s1,s2),再进行反向旋转以回到其原始位置。从这三个变换的乘积得到的复合矩阵为

图片

图片

作为缩放变换的一个例子,通过沿(0,0)到(1,1)的对角线将单位正方形拉长,使其转换成平行四边形。我们使用参数θ=45°将对角线旋转到y轴,并按s= 1和s= 2将其长度加倍,然后再旋转使对角线回到原来的位置。

在矩阵中,假设缩放是相对原点完成的,可以将这个缩放操作推进一步并与平移操作合并,从而使复合矩阵包含为指定的固定位置进行缩放的参数。

13.矩阵合并特性

矩阵相乘符合结合律。

变换积不可交换。

14.通用二维复合变换和计算效率

//more statement...

15.二维刚体变换

如果一个变换矩阵仅包含平移和旋转参数,则它是一个刚体变换矩阵(rigid-body transformation matrix)。二维刚体变换矩阵的一般形式为

图片

其中,4个元素rjk是多重旋转选项,元素trx和try是平移项。坐标位置的刚体变化有时也称刚体运动(rigid-motion)变换。变换后坐标位置间的所有角度和距离都不变化。此外,矩阵具有其左上角的2*2矩阵是一个正交矩阵的特性。这说明,假如将子矩阵 每一行(或者每一列)作为一个向量,那么两个行向量,那么两个行向量(rxx,rxy)(或两个列向量)形成单位向量的正交组。这样一组向量也成为正交向量组。每个向量具有单位长度:

图片

并且向量相互垂直(它们的点积为0):

图片

因此,假设这些单位向量通过旋转子矩阵进行变换,那么(rxx,rxy)就转换成沿x轴的单位向量,(ryx,ryy)转换成沿坐标系统y轴的单位向量

图片

作为一个例子,下列刚体变换先将对象对于基准点(xr,yr)旋转θ角,然后平移:

图片

这里,左上角2*2子矩阵中的对角单位向量为(cosθ,-sinθ)和(sinθ,cosθ),并且

图片

同样,单位向量(sinθ,cosθ)也由前面的变换矩阵转换成y方向的单位向量(0,1)。



___________________________________________________

计算机图形学:第3版/(US)Hearn, D.,Baker,M.P.著

相关文章推荐

OpenGL(三)图形变换之几何变换

通常,为了把一组图形融合为一个场景,必须把他们按照批次之间的关系和与观察这的关系排列起来,这就要用到变换。变换使得能够把3D坐标投影到2D场景成为可能,变换包括旋转对象,移动对象,甚至拉伸、压缩和玩去...

OpenGL基础图形编程(八)变换

OpenGL变换是本篇的重点内容,它包括计算机图形学中最基本的三维变换,即几何变换、投影变换、裁剪变换、视口变换,以及针对OpenGL的特殊变换概念理解和用法,如相机模拟、矩阵堆栈等。学好了这章,才开...

OpenGL几何变换

OpenGL几何变换  OpenGL中指定了顶点之后,但在屏幕上显示它们之前,会发生三种类型的变换:视图变换、模型变换和投影变换。OpenGL中一些变换术语如下表: 变换 用途 视图(Vie...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

计算机图形学(四)_几何变换_1_基本的二维几何变换(三)_缩放

改变一个对象的大小,可使用缩放(scaling)变换。一个简单的二维缩放操作可通过将缩放系数(scaling factor)Sx 和 Sy与对象坐标位置(x, y)相乘而得: 在缩放公式中...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

计算机图形学(四)_几何变换_1_基本的二维几何变换(二)_旋转

类似于平移,旋转是一种不变形地移动对象的刚体变换,对象上的所有点旋转相同的角度。线段的旋转可以通过将旋转方程5用于每个线段端点,并重新绘制新端点间的线段而得到。多边形的旋转则是将每个顶点旋转指定的旋转...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算机图形学:基本二维几何变换
举报原因:
原因补充:

(最多只允许输入30个字)