计算机图形学-第三章 图形的几何变换与观察变换
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
位置直线变成能应用基本变换的特殊位置直线。
所以整个变换的实现过程为:先把任意位置直线变(应用
基本变换)为特殊位置直线;应用基本的对称变换矩阵进行变
换;最后恢复原状。
Hale Waihona Puke (1)让直线沿 x 轴方向平移 C/A,使其通过坐标系原点。 变换矩阵为:
1 0 C / A
T1 0 1
0
0 0 1
2023/6/18
0
0 x x cos y sin
0
y
x
sin
y
cos
1 1
1
2023/6/18
23
计算机图形学
如图所示,由于:
x* r cos( ) r cos cos r sin sin x cos y sin y* r sin( ) r sin cos r cos sin x sin y cos
系。此外,三维的图形要在二维的屏幕或图纸上显示出来要通
过投影变换。为了从不同的方向去观察对象,要求能对对象作
旋转变换, 放大缩小和平移变换更是经常要用的。 绘图过程中
还需要用窗口来规定要显示的内容,用视区来规定在屏幕或图
纸上显示的位置。利用图形变换可实现改变或管理显示,例如,
2023/6/18
2
计算机图形学
1 0 0 1 1 1
2023/6/18
20
计算机图形学
即:x* = x + r12·y; y* = y。 从以上结果可以看到:新图形各顶点的 y 坐标没有变,而 x
坐标是在原有的值上加一个有关 y 正比例函数值的增量。所以 使得整个图形在等高的前提下发生了倾斜。并且,当:r12 0 时,图形沿 x 正向错切。r12 0 时,图形沿 x 负向错切。
0 0 1
(4)绕原点旋转 角,使直线恢复到原倾斜位置。变换
矩阵为:
cos sin 0
T4 sin cos 0
0
0
1
2023/6/18
30
计算机图形学
关于 x 轴的对称变换
旋转
(5)让直线沿 x 轴方向平移 - C/A,使其回到原来位置。
变换矩阵为:
1 0 C / A
T5 0 1
0
0 0
2023/6/18
11
3.2 二维图形变换
计算机图形学
3.2.1 二维基本变换
二维图形变换的一般形式是:
r11 r12 tx
r21
r22
t
y
0 0 1
对于二维变换矩阵中各元素的不同取值,可以获得对二维
图形的不同变换效果,这些变换称为二维图形的基本变换。这
些基本变换有以下五种:
2023/6/18
28
计算机图形学
(2)让直线绕坐标系原点旋转 - 角,使与 x 轴重合。变
换矩阵为:
cos sin 0
T2 sin cos 0
0
0 1
2023/6/18
平移
旋转
29
计算机图形学
(3) 由于原直线已与 x 轴重合,于是对于直线的对称变换 即为对于 x 轴的对称变换。变换矩阵为:
1 0 0 T3 0 1 0
既然图形的几何变换仅和点的位置变化有关,所以我们首 先要讨论一个点在空间的位置及其变化。
2023/6/18
5
计算机图形学
由于点可以用一个列向量来表示,那么要改变一个点的位 置,就意味着要改变这个向量(大小及方向)。
对向量的运算通常用矩阵运算来实现。假如原顶点坐标为:
x
y
经变换后的坐标为:
x *
计算机图形学
这种用三维的形式来表示一个二维向量,进一步推广来说, 用一个 n + 1 维的形式来表示 n 维向量的方法,叫做齐次坐标表 示法。 这一小小的改变,给图形变换的矩阵实现创造了条件。
采用了齐次坐标表示法以后,我们可以把二维的线性变换 表示成如下规格化的形式:
x * x a1 b1 c1 x
2023/6/18
3
3.1 几何变换的基本原理
计算机图形学
下面这张示意图,举例说明了图形的几种常见变换。
几种常见的几何变换:放大、压缩、旋转、错切
2023/6/18
4
计算机图形学
总结以上这些变化后的图形结果,可以得到这样的结论:
(1)图形变化了,但原图形的构成规则(拓扑关系)没有 改变;
(2)图形发生的变化,是因为其顶点位置(几何关系)的 改变决定的。 这种通过维持图形的拓扑关系不变,而仅改变图 形的几何关系来实现改变图形的方法,我们称之为图形的几何 变换。
y
*
T
y
a2
b2
c2
y
1 1 0 0 1 1
三阶方阵 T 称为二维线性变换矩阵。于是,对于任何二维
图形的顶点进行几何变换,均可以写成如下形式:
2023/6/18
10
计算机图形学
P* = T ·P 其中:P* 为变换后的新顶点表;P 为变换前的顶点表。
矩阵 T 中元素的取值不同,可以形成对顶点的不同变换。 连接新的顶点,从而构成新的图形(几何变换过程)。
由此得到旋转变换矩阵。
A (x*, y*) y*
y
A (x, y)
x*
x
2023/6/18
24
5. 平移变换 平移变换矩阵为:
计算机图形学
其变换结果为:
1 0 tx
0
1
t
y
0 0 1
x * 1 0 tx x x tx
y
*
0
1
t
y
y
y
t
y
1 0 0 1 1 1
2023/6/18
2023/6/18
26
计算机图形学
例如,设任意直线的方程为: Ax + By + C = 0
该直线在 x、y 两轴上的截距分别为 - C/A 和 - C/B;直线的斜率
为 tg = - A/B。
那么,如何实现关于该直线的对称变换呢?
2023/6/18
27
计算机图形学
为了使这个变换能够实现,首先想到的是:最好能把任意
1
2023/6/18
31
计算机图形学
综合以上的五步,对任意直线的对称变换过程为:
x *
x x
y
*
T5
T4
T3
T2
T1
y
T
y
1
1 1
其组合变换矩阵:
cos 2 T T5 T4 T3 T2 T1 sin 2
0
sin 2 cos 2
0
C / A(cos 2 1)
C / Asin 2
r11= r22 >1:图形沿 x、y 两个方向等比例放大; 0 r11= r22 1:图形沿两个方向等比例缩小; r11 r22:由于图形在两个方向上的缩放系数不相等,所 以经过变换后的图形将产生畸变。也能对图形产生拉伸和 压缩的效果。(缩放中心为坐标系原点)
2023/6/18
14
计算机图形学
(3)复原。使旋转中心从坐标系原点平移到原来的位置 (x,
y),变换矩阵为:
1 0 x T3 0 1 y
0 0 1
所以,绕任意点 P(x, y) 的旋转过程为:
x *
x x
y
*
T3
T2
25
计算机图形学
3.2.2 二维组合变换
在前面介绍的五种变换都属于基本变换。但实际应用中, 大部分图形的变换是不能仅靠单独的基本变换来实现的,而是 需要经多次变换才能实现。这种由多个基本变换组合(级联) 而成的复杂变换过程称为组合变换。
1. 对任意直线的对称变换 前面介绍过五种对称变换,但对称轴都是特殊位置直线。 对于对称轴是任意位置直线的对称变换,以上的对称变换矩阵 都不能直接应用。
r12 < 0
2023/6/18
r12 > 0
21
计算机图形学
(2) 沿 y 轴方向的错切变换 沿 y 轴方向的错切变换矩阵为:
其变换结果为:
1 0 0 r21 1 0 0 0 1
x * 1 0 0 x x
y
*
r21
1
0
y
y
r21x
1 0 0 1 1 1
即:x* = x;y* = y + r21x。
12
1. 比例变换 比例变换的变换矩阵为:
变换结果为:
r11 0 0
0
r22
0
0 0 1
计算机图形学
即:
x * r11 0 0 x r11x
y
*
0
r22
0
y
r22
y
1 0 0 1 1 1
2023/6/18
13
计算机图形学
x* = r11·x, y* = r22·y 可以看到,r11 为 x 方向上的缩放因子,r22 为 y 方向上的缩放因 子,它们分别影响两个方向上的缩放效果。这些效果包括:
1
2023/6/18
32
计算机图形学
2. 绕任意点的旋转变换 绕坐标原点以外的任意点 P(x, y) 的旋转如图所示。
前面介绍的旋转是以坐标系原点为旋转中心的,现在的旋
转中心 P 不在原点,所以不能简单地套用上面的旋转变换矩阵, 我们可以通过以下几个基本变换来完成。
2023/6/18
33
计算机图形学
y
*
那么用矩阵表示的变换过程为:
2023/6/18
6
计算机图形学
x * x
y
*
T
y
这是一个线性变换,其中的 T 为线性变换矩阵,它是一二阶方
阵。一个二维线性变换的一般形式也可以写成如下的代数式:
x* = a1·x + b1·y + c1
y* = a2·x + b2·y + c2 转换为矩阵形式,就是:
x
x y
* *
a1 a2
b1 b2
c1 c2
y
1
2023/6/18
7
计算机图形学
上面所说一个线性变换的矩阵形式和代数形式的统一,必 须对点向量的表示法稍作修改,即:
x
x y
* *
T
x y
a1 a2
b1 b2
c1 c2
y
1
变换的矩阵形式和代数形式是完全可以统一的,只是原来
计算机图形学
第三章 图形几何变换 与观察变换
2023/6/18
1
计算机图形学
几何变换是计算机图形学中的一个重要内容。通过对简单
图形进行多种变换和组合,可以形成一个复杂图形。
一般来说,图形从输入到输出贯串着各种变换。被描述的
对象所处的环境和显示屏幕或图纸的环境是很不相同的,不仅
位置不同,大多数情况下尺寸也很不同。这就要协调二着的关
(1)将指定的任意旋转中心点 P 平移到坐标系原点,以使 原来的绕任意点旋转转化为绕坐标系原点的旋转。其变换矩阵
为: 1 0 x
T1 0 1 y 0 0 1
(2)使图形绕坐标系原点旋转 角,其变换矩阵为:
cos sin 0
T2 sin cos 0
0
0
1
2023/6/18
34
计算机图形学
用二维向量表示的点变成了用三维向量来表示。但其第三维是
常数 1。其几何意义为:
x
x
y
:z
=
0
平面上的点;
y
:z
=
1
平面上的点;
1
2023/6/18
8
计算机图形学
两种表示方法,仅从图形上来看是没有实质性差别的。我 们可以看下面的图例:
Z Z=1
Y X
在不同高度水平面上绘的图
2023/6/18
9
通过调整图形组件的方向和大小可实现设计和设施布局;通过 移动“照相机”或场景中的对象产生图形动画。而在图形的方 向、尺寸和形状方面的变化可通过改变对象坐标描述的几何信 息变换来完成。基本几何变换有平移、旋转和缩放,常用的其 他变换还有反射和错切。
本章主要介绍二维图形几何变换的原理和方法,三维图形 的几何变换,以及三维观察变换。
2. 镜像(对称)变换
对称变换的结果取决于对称轴的设置。
(1) 关于 x 轴的对称变换
对于 x 轴的对称变换矩阵为:
变换结果为:
1 0 0 0 1 0 0 0 1
x * 1 0 0 x x
y
*
0
1
0
y
y
1 0 0 1 1 1
2023/6/18
15
(2) 关于 y 轴的对称变换 对于 y 轴的对称变换矩阵为:
*
1
0
0
y
x
1 0 0 1 1 1
2023/6/18
17
计算机图形学
(4) 关于 - 450 线的对称变换 变换矩阵为:
变换结果为:
0 1 0 1 0 0 0 0 1
x * 0 1 0 x y
y
*
1
0
0
y
x
1 0 0 1 1 1
2023/6/18
18
以上四种变换的效果如下图所示。
计算机图形学
关于两坐标轴的对称变换
2023/6/18
关于 - 450 线的对称变换
19
计算机图形学
3. 错切变换 (1) 沿 x 轴方向的错切变换 沿 x 轴方向的错切变换矩阵为:
其变换结果为:
1 r12 0 0 1 0 0 0 1
x * 1 r12 0 x x r12 y
y
*
0
1
0
y
y
计算机图形学
变换结果为:
1 0 0
0
1
0
0 0 1
x * 1 0 0 x x
y
*
0
1
0
y
y
1 0 0 1 1 1
2023/6/18
16
(3) 关于 450 线的对称变换 变换矩阵为:
变换结果为:
0 1 0 1 0 0 0 0 1
计算机图形学
x * 0 1 0 x y
y
2023/6/18
22
计算机图形学
4. 旋转变换 在二维平面内,如不加说明,则所说旋转变换是指图形绕
坐标系原点旋转。且逆时针旋转,角度 取正值;顺时针旋转, 角度 取负值。旋转变换矩阵为:
其变换结果为:
cos sin 0
sin cos 0
0
0 1
x * cos
y
*
sin
1 0
sin cos