论文部分内容阅读
在这个科技发展日新月异的时代,计算机科学自诞生之日起就引起许多人希望涉足其中的浓厚兴趣。她仿佛一棵枝繁叶茂的大树,充满生机,无限延伸……随着计算机科学技术的发展,作为其最活跃的分支之一的计算机图形学,已经逐渐成长为计算机科学领域中的一个年轻而重要的学科,并广泛应用于生活中的各个领域。如今,图形已经越来越多地成为传递各种信息的主要载体之一。从某种意义上说,图形学的应用标志着计算机软、硬件技术的发展水平,同时也是许多重要问题的基础,如在CAD、CAM中它都有着广泛的应用。图形作为计算机图形学的研究对象,其构图的主要几何要素就是刻画形状的点、线、面、体等。在具体的应用中,每一幅图形都是由成百上千条直线和曲线构成,这样对于每一条直线或曲线的处理速度和质量则直接影响着整幅图形的处理效果。因此,对于计算机图形学基础算法的研究具有极其重要的意义。裁剪算法是计算机图形学所研究的基本问题之一。裁剪,就是从所需的信息中识别指定的区域内或区域外的部分的过程,顾名思义,就是对指定的图形数据进行部分摘选,对指定的区域进行进一步操作。其最基础的用途是用来确定某个场景内的指定区域,这个区域称之为窗口(矩形窗口应用相对更广泛),裁剪就是要把选定的区域定义在这个窗口之内。在计算机图形处理系统中,裁剪是一项经常而必需的操作,其原理是以一个窗口显示一个大画面的局部内容,符合窗口边界条件的内容得以显示,而不符合的内容需裁剪去除。当前,由于受鼠标指针和显示屏操作的限制,导致常用的裁剪窗口多为矩形[1]。基于矩形窗口的线裁剪[2][3]和多边形裁剪已有许多经典算法,如Cohen-Sutherland算法[4]、中点分割算法[5]、梁-Barsky算法[6],Sutherland-Hodgon[1]算法以及Nicholl-Lee-Nicholl算法[7]等。而在实际应用中,圆形裁剪的操作也十分普遍,如机械构件的检测、二维动画的设计、机器人运动学等。由于圆属于二次曲线,因此,采用原始的类圆形逼近生成的裁剪算法将会产生计算复杂和效率低的问题。为此,一些学者对圆形裁剪进行了研究,提出了相应的算法,如:文献[8]提出的基于矩形窗口的圆曲线裁剪算法,利用坐标变换的原理对圆形进行空间预处理;文献[9]提出的任意多边形的圆形裁剪算法,以单条直线与圆形相交的计算为基础,将圆形分段为圆弧进行裁剪。现有的算法都能对圆形进行有效的裁剪,但从裁剪复杂度与算法实用性的方面来考察却都各自存在局限性。本文对计算机图形学的现状进行了调查,围绕二维图形的裁剪进行研究,并以理论和实际操作结合的方式进一步分析了计算机图形学基础算法。在分析现有圆裁剪算法的基础上,本文提出了基于矩形窗口分区编码的圆裁剪算法,首先根据圆的八分对称性求出圆周的关键点,然后按规则进行编码,从而判断圆与矩形窗口的相交关系,并对圆进行相应的裁剪输出,快速完成矩形窗口对圆的裁剪。实验结果表明,该算法减少了复杂运算的次数,避免了多余的无用计算,具有较高的运算效率。