文档介绍:第六章图形裁剪
在用户坐标系中定义的图形往往是大而复杂的,而输出设备如显示屏幕的尺寸及其分辨率却是有限的,为了能够清晰地观察某一部分或对其进行某些绘图操作,就需要将所关心的这一局部区域的图形从整个图形中区分出来,这个区分指定区域内和区域外的图形过程称为裁剪,所指定的区域称为裁剪窗口。
裁剪通常是对用户坐标系中窗口边界进行裁剪,然后把窗口内的部分映射到视区中,也可以首先将用户坐标系的图形映射到设备坐标系或规范化设备坐标系中,然后用视区边界裁剪。
下面假定裁剪是针对用户坐标系中窗口边界进行的,裁剪完成后,再把窗口内图形映射到视区。所以裁剪的目的是显示可见点和可见部分,删除视区外的部分。
11/10/2017
1
计算机图形学演示稿纪玉波制作(C)
窗口区和视图区
坐标系
(World Coordinates)
又称为世界坐标系、完全坐标系等,它可以是用户用来定义设计对象的各种标准坐标系,例直角坐标、极坐标、球坐标、对数坐标等。用户坐标系所拥有的区域范围从理论上说是连续的、无限的。
(Viewing Coordinates)
在用户坐标中设置观察坐标系,在观察坐标系中定义一个观察窗口。观察坐标系用来任意设置矩形窗口的方向。一旦建立了观察参考系,就可以将用户坐标系下的描述变换到观察坐标系下。
11/10/2017
2
计算机图形学演示稿纪玉波制作(C)
11/10/2017
3
计算机图形学演示稿纪玉波制作(C)
(Normalized Device Coordinates)
在规范化坐标系下(取值范围从0到1)定义视区,将观察坐标系下的场景描述映射到规范坐标系下。
11/10/2017
4
计算机图形学演示稿纪玉波制作(C)
(Device Coordinates)
图形输出时需要一定的设备,如绘图仪、显示器等,使用的是设备坐标系。设备坐标系一般为二维坐标,如屏幕坐标。它的范围有限,单位一般为整数。设备坐标一般采用无量刚方式,可以转换为有量刚坐标。一旦场景变换到规范化坐标系下的单位正方形中,以后该单位面积只需要简单地映射到具体输出设备的显示区。给出合适的设备驱动程序,就可以使用不同的输出设备。
11/10/2017
5
计算机图形学演示稿纪玉波制作(C)
窗口区和视图区
用户可以在用户坐标系中指定感兴趣的任意区域,把这部分区域内的图形输出到屏幕上,这个指定区域称为窗口区。窗口区一般是矩形区域,可以用左下角和右上角两点坐标来定义其大小和位置。定义窗口的目的是要选取图形中需要观察的那一部分图形。在计算机图形学术语中,窗口最初是指要观察的图形区域,但是目前窗口也用于窗口管理系统。在本章中,我们将窗口理解为用户坐标系中要显示的区域。
图形设备上用来输出图形的最大区域称之为屏幕域,它是有限的整数域,大小随具体设备而异。任何小于或等于屏幕域的区域都可定义为视图区。视图区由用户在屏幕域中用设备坐标定义,一般也定义成矩形,由其左下角和右上角两点坐标来定义。所以,用户可以利用窗口来选择需要观察那一部分图形,而利用视图区来指定这一部分图形在屏幕上显示的位置。标准的窗口区和视图区一般都是矩形,其各边分别与坐标轴平行。
11/10/2017
6
计算机图形学演示稿纪玉波制作(C)
用户定义的图形从窗口区到视图区的输出过程如下:
从应用程序得到图形的用户坐标(WC-World Coordinates)→对窗口区进行裁剪(WC)→窗口区到视图区的规格化变换(NDC-Normalized Device Coordinate)→视图区从规格化设备系到设备坐标系的变换(DC-Device Coordinate)→在图形设备上输出图形。
下图是从用户坐标系取图形在设备坐标系下显示的示意图:
11/10/2017
7
计算机图形学演示稿纪玉波制作(C)
窗口区和视图区之间的坐标变换
由于窗口和视图是在不同坐标系中定义的,因此,在把窗口中图形信息转换到视图区之前,必须进行坐标变换,即把用户坐标系的坐标值转化为设备坐标系的坐标值。
设在用户坐标系下,矩形窗口左下角点坐标为(Wxl,Wyb), 右上角点坐标为(Wxr,Wyt)。屏幕中视图区的两个角点在设备坐标系下分别为(Vxl,Vyb)和(Vxr,Vyt)。则在窗口中的点(xw,yw)对应视图区中的点(xv, yv),其变换公式为:
11/10/2017
8
计算机图形学演示稿纪玉波制作(C)
下图为示图:
11/10/2017
9
计算机图形学演示稿纪玉波制作(C)
记:
公式可以化简为:
11/10/2017