27
1 2 2 第 第第第第第第第第第 第 第第第第第第第第第

第 2 章 计算机图形处理技术

  • Upload
    prem

  • View
    199

  • Download
    0

Embed Size (px)

DESCRIPTION

第 2 章 计算机图形处理技术. 2.1 图形处理技术基础 2.1.1 坐标系 一、坐标系分类. 1 、世界坐标系 世界坐标系( WCS : World Coordinate System )是最常用的坐标系,也称为自然坐标系和用户坐标系。它的最常用形式是笛卡儿 右手坐标系 。如图所示,( a )为二维图形的坐标系,( b )为三维物体的坐标系。理论上,世界坐标系是无限大且连续的,也就是说它的定义域为实数域,即它的坐标从-∞到+∞。它用于定义用户整图或最高层图形结构,各子图、图元经调用后都放在用户坐标系的适当位置。. 2 、造型坐标系 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 2 章 计算机图形处理技术

1

第第 22 章 计算机图形处理技术章 计算机图形处理技术第第 22 章 计算机图形处理技术章 计算机图形处理技术

Page 2: 第 2 章 计算机图形处理技术

2

2.1 图形处理技术基础2.1.1 坐标系一、坐标系分类

Page 3: 第 2 章 计算机图形处理技术

3

1 、世界坐标系 世界坐标系( WCS : World Coordinate System )

是最常用的坐标系,也称为自然坐标系和用户坐标系。它的最常用形式是笛卡儿右手坐标系。如图所示,( a )为二维图形的坐标系,( b )为三维物体的坐标系。理论上,世界坐标系是无限大且连续的,也就是说它的定义域为实数域,即它的坐标从-∞到+∞。它用于定义用户整图或最高层图形结构,各子图、图元经调用后都放在用户坐标系的适当位置。

oo

(b)(a)z

y

x

y

x

Page 4: 第 2 章 计算机图形处理技术

4

2 、造型坐标系 造型坐标系( MCS : Modeling Coordinate Syste

m )是右手坐标系。它是用来描述世界坐标系中每个具体物体的形状,每个物体均由其自身的造型坐标系定义。

造型坐标系 局部坐标系 世界坐标系 整体坐标系。 3 、观察坐标系 观察坐标系( VCS : View Coordinate System )是为

了将三维物体投影到显示屏幕(观察平面)上而建立起来的,是左手坐标系。

作用:指定裁剪空间,确定物体显示输出的部分; 定义观察平面,世界坐标变换为规格化设 备坐标。

Page 5: 第 2 章 计算机图形处理技术

5

4 、设备坐标系 图形输出设备(如显示器、绘图机)自身都有一个坐标系,称之为设备坐标系( DCS : Device Coordinate System )或物理坐标系。设备坐标系是一个二维平面坐标系,用于在图形显示设备上定义图形或窗口的位置。 5 、规格化设备坐标系 由于不同的图形设备具有不同的设备坐标系,且不同设备之间坐标范围也不尽相同,为了避免由于设备坐标系与设备的相关性影响应用程序的可移植性,我们引入与设备无关的规格化的设备坐标系( NDCS : Normalized Device Coordinate System )。规格化的设备坐标系的取值范围是左下角( 0.0 , 0.0 ),右上角( 1.0 , 1.0 )。

Page 6: 第 2 章 计算机图形处理技术

6

二、坐标变换过程 为在图形设备上显示和观察所构造的几何图形,通常需

要进行坐标变换,其变换过程如下:

Page 7: 第 2 章 计算机图形处理技术

7

2.1.2 窗口和视区 一、窗口与视区 1 、窗口 (Windows) 用户坐标系中的一个矩形区域,可以用其左下角点和右上角

点坐标来表示。只有在这个区域内的图形才能在设备坐标系下显示输出,其余的将被裁剪掉。窗口可以嵌套,即在第一层窗口中再定义第二层窗口,在第 n 层窗口中再定义第 n+1 层窗口,在各种 CAD 系统中经常用到的框选放大操作就是窗口技术的典型应用。

2 、视区 (Viewport) 设备坐标系中的一个矩形区域,在图形设备上用来输出图形

的最大区域称之为屏幕域,它是有限的整数域,任何小于或等于屏幕域的区域都可定义为视区。视区由用户在屏幕

域中用设备坐标定义,一般也由左下角点和右上角 点坐标来表示,同样视区也可以是多层的。而 且,在同一屏幕还可以定义多个视区。

Page 8: 第 2 章 计算机图形处理技术

8

窗口与视区如图所示

通过变换可以把窗口中的图形和视区中的图形一一对应起来。

输出图形:用户坐标系 设备坐标系 (窗口坐标) (视区坐标) 输入图形:设备坐标系 用户坐标系 (视区坐标) (窗口坐标)

Page 9: 第 2 章 计算机图形处理技术

9

二、窗口—视区变换

设在用户坐标系下定义的窗口为:左下角点的坐标 (wxl ,wyb) ,右上角点的坐标 (wxr , wyt) ,该窗口在相应设备坐标系下定义的视区为 (vxl , vyb) 、 (vxr , vyt) 。如果与用户坐标系中的点 W(xw , yw) 对应的视区上的点为 V ( xv , yv ),由图可得:

Page 10: 第 2 章 计算机图形处理技术

10

ybyt

ybw

ybyt

ybv

xlxr

xlw

xlxr

xlv

ww

wy

vv

vyww

wx

vv

vx

ybybwybyt

ybytv

xlxlwxlxr

xlxrv

vwyww

vvy

vwxww

vvx

)(

)(

ybybyt

ybytyb

ybyt

ybyt

xlxlxr

xlxrxl

xlxr

xlxr

www

vvvd

ww

vvc

www

vvvb

ww

vva

dcyy

baxx

wv

wv

Page 11: 第 2 章 计算机图形处理技术

11

1

00

00

11

db

c

a

yxyx wwvv

写成矩阵形式为:

dcyy

baxx

wv

wv

Page 12: 第 2 章 计算机图形处理技术

12

二维图形输出过程

三维图形输出过程

Page 13: 第 2 章 计算机图形处理技术

13

在此值得注意的是: 1 、当视区不变时,窗口尺寸缩小则视区图形尺寸变大,

窗口尺寸变大则视区显示尺寸变小。

窗口 视区

窗口

Page 14: 第 2 章 计算机图形处理技术

14

2 、当窗口尺寸不变时,视区的尺寸变化与视区内显示图形的尺寸变化一致。

窗口

视区

视区

Page 15: 第 2 章 计算机图形处理技术

15

3 、如果视区的纵横比与窗口的纵横比不一致时,经 变换后的图形在视区中输出时会产生失真现象,因此在定义窗口和视区时,要保证它们的纵横比一致。

窗口 视区

视区

Page 16: 第 2 章 计算机图形处理技术

16

2.1.3 图形裁剪 只有位于窗口内的图形才能经过窗口 -视图变换送视区中输出

显示,而在用户坐标系中究竟有哪些图形位于窗口内或窗口外,只有通过裁剪过程才能判别出来,裁剪边界通常是矩形窗口,也可是任意的多边形。被裁剪的对象经常是点、线段、字符、多边形等。

Page 17: 第 2 章 计算机图形处理技术

17

一、点与字符的裁剪

点的裁剪比较简单,当图形系统的窗口确定之后,设被裁剪的点的坐标为( x, y ),则只有当该点的坐标满足下式

该点才位于窗口之内,并经过窗口 -视图变换后送视区中显示,否则该点位于窗口之外而被舍去。

ytyb

xrxl

wyw

wxw

Page 18: 第 2 章 计算机图形处理技术

18

字符的裁剪,根据裁剪精度不同,可分为三种情况。如图所示。

( 1 )字串裁剪 用一个限界矩形来包含整个文本字符串,判断该限界矩形

是否全部位于裁剪窗口的内部,如果是,则字符串全部保留,如果不是,则字符串全部不可见。这是字符裁剪的最简单方法,裁剪速度最快,但精度最低。

Page 19: 第 2 章 计算机图形处理技术

19

( 2 )字裁剪 类似于串裁剪,但限界矩形以单个字符为单位。 ( 3 )笔划裁剪 通过把一个字符看成一系列短笔划的集合,使字符的裁剪归

结为对组成这些字符的笔划的裁剪,必须逐条直线的进行。此种方法可以精确地删除字符在窗口外的部分,如实地反映了字符的裁剪结果,优点是裁剪精度最高,缺点是裁剪过程比较复杂。

字裁剪

笔划裁剪

Page 20: 第 2 章 计算机图形处理技术

20

二、二维直线段裁剪 线段与窗口的位置关系有如下几种情况 ( 1 )直线段两个端点在窗口内; ( 2 )直线段两个端点在窗口外,且与窗口不相交; ( 3 )直线段两个端点在窗口外,且与窗口相交; ( 4 )直线段一个端点在窗口内,一个端点在窗口外。

从图中我们可以看出,不同位置的线段被窗口边界分成 一段或几段,但其中只有一段落在窗口内,如何找 出落在窗口内线段的起点和终点坐标是关键。常 用的算法有矢量裁剪法、编码裁剪法、中点分割法。

Page 21: 第 2 章 计算机图形处理技术

21

1 、编码裁剪法

( 1)定义编码状态表。 如图所示,延长窗口的各边,将平面空间划分为九个区域,每个区域有一个四位代码。四位代码意义如下:

Page 22: 第 2 章 计算机图形处理技术

22

第一位:端点在窗口左边界的左侧代码为 1 ,否则代码为 0 ;第二位:端点在窗口右边界的右侧代码为 1 ,否则代码为 0 ;第三位:端点在窗口底边界的下侧代码为 1 ,否则代码为 0 ;第四位:端点在窗口上边界的上侧代码为 1 ,否则代码为 0 。

( 2 )直线段的两个端点按其所在区域被赋予相应代码,称为端点状态代码。 ( 3 )测试直线段的端点状态,当两端点状态代码都为零,说明该线段完全位于窗口之内;当两端点的状态代码的位逻辑“与”不为零,说明线段位于窗外同一侧。 ( 4 )不能通过上述测试的线段,再求它与窗口边界(或边界的延长线)的有效交点,它将线段分割成两个子段,用上述两个条件对这两个子段进行测试,舍弃位于窗外的一段,而 对剩余部分再次赋给交点处的端点状态代码,再次 测试,再次求交,直至能判断出裁剪剩余部分直线 段是否位于窗口内或在窗外。

Page 23: 第 2 章 计算机图形处理技术

23

2 、中点分割法 实际上直线段的裁剪过程即能在用户坐标系中进行,

也能在设备坐标系中进行。由于设备坐标系是整数坐标系,因此它非常适合于用中点分割法具体实现直线段的裁剪。

中点分割裁剪算法的原理与编码裁剪算法的原理类似,两者的区别仅在于:当求窗口与直线段的交点时,中点分割法是用逐次求直线段的中点来逼近其交点,且中点的次数不超过 log2

n次,其中 n=max{|△x|, |△y|},△ x、△ y 是直线段两端点在 X、 Y 方向上的增量。 该算法的优点是便于用硬件实现,求两个交点的过程可以并行进行。

Page 24: 第 2 章 计算机图形处理技术

24

三、三维直线段裁剪 以平行投影为例进行说明。 其基本思想是将空间直线段的端点相对于裁剪空间的 6个面转换为 6位二进制代码。然后采取简单的逻辑判断,去除裁剪空间以外的部分,保留裁剪空间以内的部分。 6个裁剪面的方程为:

11

11

11

zz

yy

xx

,,,

Page 25: 第 2 章 计算机图形处理技术

25

代码意义如下:

第一位:端点在窗口的上侧,即 y>1代码为 1 ,否则代码为 0 ;第二位:端点在窗口的下侧 , 即 y<- 1代码为 1 ,否则代码

为 0 ;第三位:端点在窗口的右侧,即 x>1代码为 1 ,否则代码为 0 ;第四位:端点在窗口的左侧,即 x<- 1代码为 1 ,否则代码

为 0 ;第五位:端点在窗口的后侧,即 z>1代码为 1 ,否则代码为 0 ;第六位:端点在窗口的前侧 , 即 z<- 1代码为 1 ,否则代码

为 0 。

裁剪步骤: 与二维编码裁剪类似,若线段的两端点的编码都为零,则线段落在裁剪空间内,应保留;若两端点的位逻辑“与”不为零,则线段落在窗口空间以外,应舍弃;否则,对此线段进行分段处理,计算此线段与窗口空间平面的交点,并取有效交点,求出交

点的 6位编码,重复上述判断,直到各分段完全保留 或完全舍弃。

Page 26: 第 2 章 计算机图形处理技术

26

四、多边形裁剪

逐边裁剪法( 1974年由 Sutherland 和 Hodman提出)

Page 27: 第 2 章 计算机图形处理技术

27

逐边裁剪法的原理是:先用窗口的一条边界对多边形进行裁剪,保留裁剪后位于该边界窗口内的部分图形,舍弃外部区域的图形,得到一个或若干个新的封闭多边形。当用窗口的第一条边界处理完后,在用第二条边界对那些新生成的多边形进行裁剪,如此下去,直至窗口的四条边界都裁剪完毕。