欢迎来到天天文库
浏览记录
ID:19731021
大小:55.00 KB
页数:6页
时间:2018-10-05
《计算机图形学中二维裁剪算法的研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、计算机图形学中二维裁剪算法的研究:随着计算机技术的发展,计算机图形学也日益成熟。在我们的日常生活中,也成了随处可见的必需部分。在医学、娱乐、图形艺术、商业、教育培训、科学工程等众多领域,计算机图形学的应用非常普遍。 计算机图形学主要研究的是在计算机中构造图形,将用数学模型描述的图形数据采用合适的算法转换为屏幕上图形的显示。计算机图形学学科研究的对象为二维图形学和三维图形学及其显示和变化情况。点、线、面为二维图形学范畴,几何体和场等数学构造方法则为三维图形学范畴。 现在,计算机图形学的一些基本算法已经形
2、成了固化在硬件中的规范软件包,这个学科也日趋成熟和完善。但是依然有很多算法还需要不断的改进才能应用到实际中,而裁剪算法就是其中之一。本文主要对二维图形裁剪中的椭圆形窗口裁剪算法进行了研究,使其具有较高的效率和稳定性。 关键词:计算机图形学裁剪算法椭圆形窗口线裁剪算法 1裁剪概述 裁剪算法,简称裁剪,是计算机图形学中很多重要问题的基础,它就是从数据集合中识别指定区域内或指定区域外图形部分的过程。裁剪用途很广泛,最典型的就是确定场景中位于指定区域内的景物部分。其中,指定区域成为裁剪窗口,一般为矩形,
3、由四条边组成,上、下、左、右,即:(Xl,Yb),(Xr,Yt)。实质上来说,裁剪就是确定哪些多边形等几何体位于裁剪窗口内。对于点(X,Y),只要判断两对不等式:Xl≤X≤Xr,Yb≤Y≤Yt即可。 如果四个点坐标的不等式都不成立,则这个点在矩形窗口外,否则,在窗口内。有一种最简单的裁剪方法,就是将所有图形扫描转换成点,然后在进行判断。但是这种方法时间消耗太大,非常不可取。倘若将全部在窗口外的图形完全排除而不进行扫描转换,则时间上面可以高效很多,故一般采用先裁剪再扫描的方法。 按裁减对象来分,裁剪算法
4、大概分为如下几种:点裁剪、直线段裁剪、区域多边形裁剪、曲线裁剪和文字裁剪。 裁剪有多方面应用,主要包括:使用实体造型创建对象、在三维视图中标示出可见面、对图形的一部分进行删除、复制或移动操作、防止图形边界混淆、从特定场景中抽取指定部分等。在不同的应用中,裁剪窗口的形状也不尽相同。然而,裁剪算法是否高效关键在减少求交运算,高效识别裁剪线段是否与裁剪窗口边界相交。 二维裁剪算法分为两种,对二维线段的裁剪以及对二维多边形的裁剪,在这两方面,国内外许多专家学者都进行了深入的研究,出现了很多经典算法。对于前者,
5、比较经典的算法有便于硬件实现的中点分割算法,基于编码技术的Cyrus-Berk裁剪算法,Nicholl等提出的基于几何变换技术的NLN算法,通过法向点积判别的Cyrus-Ber k裁剪算法,在NLN算法基础上发展的ELC算法,以及Liang-Bars ky算法等。另外,还有一种比较高效的只用整数运算来计算整数交点的线裁剪算法,是由M.Dorr综合了直线参数表示方法和Cohen-Suthcrland的编码方法而得到的。 2椭圆形窗口线裁剪算法描述 椭圆形不仅是计算机图形学中的基本几何元素之一,而且许
6、多实际问题的解决中,椭圆也是作为处理对象进行操作的。对于计算机图形学中的裁剪算法来说,关于椭圆形窗口的裁剪算法是非常重要的。设标准椭圆的方程为: x2/a2y2/b2=1 其中,标准椭圆的中心点为坐标轴的原点O,假设A(Xa,Ya)、B(Xb,Yb)(Xa≤Xb)为被裁剪线段的两个端点,则裁剪可按如下步骤进行: 2.1特殊情况的处理 当Xa=Xb时,即坐标轴的纵轴与被裁减的线段平行,这时分为两种情况,线段完全位于椭圆外部,即Xa>a;否则,则需求取椭圆和线段的交点,其横坐标设为Xa。 当Ya=Y
7、b时,即坐标轴的横轴与被裁剪线段平行,这时也有两种情况,线段完全位于椭圆外部;即Ya>b;否则,求需要求椭圆与线段的交点,其纵坐标均为Ya。 2.2去除所有位于椭圆外切矩形外的线段。本步采用外切矩形包围盒的方法,外切矩形由四条直线组成,x=-a、x=a、y=-b、y=b。当min(Xa,Xb)≥a或max(Xa,Xb)≤-a或min(Ya,Yb}≥b或max{Ya,Yb)≤-b时,线段AB位于外切矩形的同侧,然后转步骤3。 2.3线段端点与椭圆窗口的位置关系 椭圆有一条基本性质,即圆周上任意一点到两
8、个定点的距离和等于特定常数。又由椭圆方程可得,a为椭圆的长半轴长度,因此可以根据线段的两端点到椭圆两焦点的距离之和是否小于2a的方法,来确定线段的端点是否位于椭圆内。因为椭圆上任意一点到两焦点的距离之和等于2a,在椭圆外部的点,到两焦点的距离之和大于2a,而在椭圆内部的点,到两焦点的距离之和大于2a。 最简单的直接可以显示的情况就是,线段两端点均位于椭圆内部,进而不需要求交点,因为该线段移动位于椭圆内。另一种情况就是线段与椭
此文档下载收益归作者所有