第7章 图形技术基础_第1页
第7章 图形技术基础_第2页
第7章 图形技术基础_第3页
第7章 图形技术基础_第4页
第7章 图形技术基础_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章图形技术基础

7.1坐标系图形系统中使用的坐标系是人们广为熟知的直角坐标系,也称笛卡儿坐标系。

世界坐标系(WC):是最常用的坐标系,是一个符合右手定则的直角坐标系。它用来定义用户在2D或3D世界中的物体,也称拥护坐标系。其定义域为实数域。观察坐标系(VC):是一个符合左手定则的坐标系,可以定义在WC中的任何位置、任何方向。其作用:1)指定裁剪空间;2)在VC中定义观察平面,把3D物体的VC变换为规格化设备坐标。规格化设备坐标系(NDC):采用一种无量刚的单位代替设备坐标,当输出图形再转换为具体的设备坐标。其取值范围:左下角(0.0,0.0),右上角(1.0,1.0)。这样,可使应用程序与图形设备隔离开,增强了应用程序的可移植性。设备坐标系(DC):指图形输出设备(如显示器、绘图机)自身的坐标系。是一个2D平面坐标系,单位为步长或像素。其定义域为整数且有界。7.2图形的输出

1、窗口与视区

在VC中定义的确定显示内容的一个矩形区域,称为窗口。只有在窗口内的图形才能在DC下输出,而窗口外的部分则被裁剪。

一般用矩形的左下角坐标(Wxl,Wyb)和右上角坐标(Wxr,Wyt)来确定窗口的大小和位置。通过该变窗口的大小、位置与比例,可方便地观察局部图形,控制图形的大小。视区是在DC(通常是屏幕)中定义一个矩形区域,用于输出窗口中的图形。视区决定了窗口中的图形要显示与屏幕上的位置与大小。视区是一个有限的整数域,应小于等于屏幕区域。定义小于屏幕的视区是非常有用的,因为这样可以在同一屏幕上定义多个失去,用来同时显示不同的图形信息。如:三视图的显示。2、窗口—视区变换

把VC的坐标值转化为DC的坐标值,这种变换称为窗口—视区变换。图中:WxlWybWytWxrW(xw,xw,)V(xv,xv,)VybVytVxlVxrO因此有:设则有:写成矩阵形式:1)视区不变,窗口缩小或放大时,显示的图形相应放大或缩小

;2)窗口不变,视区缩小或放大时,显示的图形相应缩小或放大;

视区不变、窗口缩小,图形放大w2w1w3视区3)视区纵横比不等于窗口纵横比时,显示的图形有伸缩变化;4)窗口与视区大小相同、坐标原点也相同时,显示的图形不变

结论

3、二维图形的输出流程DCNDCWCVC世界坐标系下的2D图形将世界坐标系变换为VC对窗口中的图形进行裁剪VC窗口-视区变换将观察坐标映射到NDCNDC映射到DC在图形设备上输出图形4、三维实体的输出流程2DDC2DNDC将窗口内的形体投影变换到2D视区NDC映射到DC在图形设备上输出图形3DWC3DVC对窗口中的图形进行裁剪世界坐标系下的3D实体将用户坐标系变换为VC3DVC2D图形的裁剪

图形裁剪技术与窗口技术密切相关,其目的是把窗口区域内定义的图形以适当的比例输出,而把窗口之外的图形不输出。裁剪的边界(即窗口)可以是任意多边形,但常用的矩形。被裁剪的对象可以是直线、字符、多边形等,而直线的裁剪是图形裁剪的基础。裁剪算法的核心是问题是速度,就一条直线线段而言,就是迅速地判定:它是全部在窗口内还是在窗口外,否则必定是部分在窗口内,此时要求出它与窗口的交点,从而确定在窗口内的部分。1、点的裁剪

点的裁剪是最简单的一种,也是裁剪其他元素的基础。判断点的可见性,若点P(x,y)满足:则点P(x,y)为可见(在窗口内),否则不可见(在窗口外)

。2、直线段的裁剪

直线段与窗口的位置关系有如下几种情况:1)直线段两个端点在窗口内(线段c);abced2)直线段两个端点在窗口外,且与窗口不相交(线段e、d);3)直线段两个端点在窗口外,但与窗口相交(线段b);4)直线段一个端点在窗口内,一个端点在窗口外(线段a)。由于矩形窗口是凸多边形,因此一条直线段的可见部分最多为一段,故可以通过判断两个端点的可见性来确定直线段的可见部分。1)与2)容易判断,为全部可见与全部不可见;3)与4)则应据其相交情况进一步判断。编码裁剪算法

编码裁减算法也称Cohen-Sutherland算法。算法思想:每一线段或整个位于窗口内部,或能够被窗口分割而使其中的一部分能很快地被舍弃。算法步骤:1)先确定一条线段是否整个位于窗口内,若不是,则确定该是否整个位于窗口外,若是则舍弃;2)若第1)步的判断均不成立,那就通过窗口边界所在的直线将线段分成两部分,在对每一部分进行第1)步的测试。

算法实现:需把窗口边界延长,把平面分成9个区,每个区用4位二进制代码表示,四位编码分别代表点的位置与窗口边界的上、下、左、右关系,如图:第1位:若端点在窗口左边界的左侧则为1,否则为0;

0000

窗口

0001

0010

0101

1001

1000

0100

1010

0110第2位:若端点在窗口右边界的右侧则为1,否则为0;第4位:若端点在窗口上边界的上侧则为1,否则为0;第3位:若端点在窗口下边界的下侧则为1,否则为0;

因此,若两个端点的编码都为“0000”,则线段全部位于窗口内;若两个端点编码的位逻辑与不为0,则整条线段比位于窗口外。

若线段不能有上述两种测试决定,则必须将线段在分割,即计算出线段与窗口某一边界(或其延长线)的交点,再用上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论