首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 218 毫秒
1.
基于凸剖分的多边形窗口线裁剪算法   总被引:1,自引:0,他引:1  
以不增加新点的方式将多边形剖分为一些凸多边形,并基于这些多边形的边建立二叉树进行管理.裁剪计算时,根据二叉树快速地找到与被裁剪线有相交的凸多边形,然后运用高效的凸多边形裁剪算法进行线裁剪.该方法能自适应地降低裁剪计算的复杂度,使其在O(logn)和O(n)之间变化,并在大多数情况下小于O(n),其中n是多边形边数.虽然该方法需要进行预处理,但在许多应用(如多边形窗口对多边形的裁剪)中,其总执行时间(包括预处理时间和裁剪时间)比已有的不需要预处理的裁剪算法少很多.  相似文献   

2.
针对任意多边形窗口内圆的裁剪问题,本文提出一种更加全面、有效的裁剪算法.该方法提出借助x-扫描线算法来判断圆和多边形窗口的位置关系,排除圆完全在窗口内或者窗口外的情况;针对多边形窗口和圆相交的情况,按照逆时针方向依次求出多边形各边与圆的交点;最终,通过判断两点间的关系,决定两点之间画线还是画弧,完成圆的裁剪.实验结果表明,该方法能够有效全面的完成多边形窗口的圆裁剪.  相似文献   

3.
An efficient algorithm for line and polygon clipping   总被引:7,自引:2,他引:5  
We present an algorithm for clipping a polygon or a line against a convex polygonal window. The algorithm demonstrates the practicality of various ideas from computational geometry. It spendsO(logp) time on each edge of the clipped polygon, wherep is the number of window edges, while the Sutherland-Hodgman algorithm spendsO(p) time per edge. Theoretical and experimental analyses show that the constants involved are small enough to make the algorithm competitive even for windows with four edges. The algorithm enables image-space clipping against windows whose boundaries are convex spline curves. The paper contains detailed pseudo-code implementation of the algorithm and an adaptation of the simulation of simplicity method for handling degenerate cases.  相似文献   

4.
一个有效的多边形窗口的线裁剪算法   总被引:28,自引:1,他引:27  
刘勇奎  颜叶  石教英 《计算机学报》1999,22(11):1209-1214
已有的线剪裁算法都是针对矩形窗口或凸多边形窗口的,对于一的多边形窗口(包括凹多边形)的线剪裁,目前尚无有效的算法,而这样的算法却有更普遍的应用意义。该文提出一个对于一般多边形窗口的线剪裁算法。该算法在被裁剪直线的延长线上取一固定点,然后求多边形窗口的每一顶点到该固定点引线的斜率。这样对于每个窗口边只需判断被裁剪直线的斜率是否在该边两顶点到固定点引线斜率之间,就可判定直线与边是否相交,因此,每处理一  相似文献   

5.
基于凸片段分解的多边形窗口线裁剪算法   总被引:1,自引:0,他引:1  
将多边形窗口的边顺序地分割成一些片段,使得每个片段都能局部地形成一个凸多边形,称为凸片段,并建立一个二叉树来管理这些凸片段.在裁剪计算时,先根据二叉树快速地找到与被裁剪线段相交的凸片段,再利用高效的凸多边形线裁剪算法对这些凸片段进行裁剪操作.文中算法能有效地降低裁剪计算的时间复杂度,使其在O(logN)~O(N)之间自适应地变化,且大部分情况下时间复杂度小于O(N).  相似文献   

6.
提出了基于直线与凸多边形几何位置关系编码的一种新的凸多边形线裁剪算法,用凸n边形窗口对m条直线进行裁剪.实验结果表明,当n较大时,该算法所用的时间大约是著名的Cyrus-Beck算法所用时间的1/3左右.如果m的数值也较大时,该算法的速度还将大大提高.所以在实际应用中,新算法提高了裁剪效率并具有很好的稳定性.  相似文献   

7.
一般多边形窗口的线裁剪   总被引:17,自引:2,他引:15  
已有的线裁剪算法都是针对矩形窗口或凸多边形窗口的。对于一般的多边形窗口(包括凹多边形)的线裁剪,目前尚无有效的算法。开发这种算法是很必要的,因为它在计算机图形学中有很广泛的应用,如物体的消隐处理等。因此,提出一个对于一般多边形窗口的线裁剪算法,并给出了最优实现。  相似文献   

8.
This paper introduces a new approach to 2D line and polygon clipping against a rectangular clipping region, using space subdivision into cells, with the clipping region as the central cell. The line segment path is traced through the cells, and entries into and out of the cell corresponding to the clipping region enable computation of the intersection of the line segment with crossed cell edges. Tracing the line segment path is computationally very simple, leading to an algorithm that only computes intersections that the are part of the clipped line segment. The new algorithm is compared to other standard line clipping algorithms with simulations and operation counts.  相似文献   

9.
We present an algorithm to compute the topology and geometry of an arbitrary number of polygon sets in the plane, also known as the map overlay. This algorithm can perform polygon clipping and related operations of interest in VLSI CAD. The algorithm requires no preconditions from input polygons and satisfies a strict set of post conditions suitable for immediate processing of output polygons by downstream tools. The algorithm uses sweepline to compute a Riemann–Stieltjes integral over polygon overlaps in O((n+s)log(n)) time given n polygon edges with s intersections. The algorithm is efficient and general, handling degenerate inputs implicitly. Particular care was taken in implementing the algorithm to ensure numerical robustness without sacrificing efficiency. We present performance comparisons with other polygon clipping algorithms and give examples of real world applications of our algorithm in an industrial software setting.  相似文献   

10.
计算机图形学的基础经典裁剪算法的改进是添加一些附加的判断条件以提高效率或只是适用于某种特殊条件环境的应用。对常用的线段裁剪算法和多边形之间的裁剪算法进行简单的原理描述与比较,提出一个新的任意不自相交多边形之间的裁剪算法,该算法以基本线段单元为控制对象,在线段求交中使用梁友栋-barskey算法,然后从裁剪之后的线段单元组中寻找多边形的线段单元组合。分带环多边形之间的裁剪和不带环多边形之间的裁剪来详细描述算法的实施步骤和算法流程;最后用C++语言实现该裁剪算法,结合工程应用解决了多边形裁剪实例,通过测试证明该算法对不自相交多边形之间的裁剪是很有效的,同时使用该算法解决了多边形与折线之间的裁剪问题,改善工程应用。  相似文献   

11.
通用扫描线多边形填充算法   总被引:6,自引:2,他引:4  
传统的扫描线多边形填充算法只适用于水平扫描线的逐行填充。文章提出通用扫描线多边形填充算法,该算法可以有效地解决任意间距、任意倾角的扫描线对多边形的填充问题。通用扫描线多边形算法采用了坐标变换、浮点数舍入策略等重要方法。顶点扫描线号是该算法中的核心概念。  相似文献   

12.
一种任意多边形裁剪快速算法   总被引:2,自引:0,他引:2  
提出一种用VC++语言实现的多边形裁剪快速算法。与以往的算法相比,算法中不仅多边形可以是任意的,而且在求交、并和差的过程中用符号判断代替耗时的乘法运算,采用预处理方法等技术来减少程序的遍历次数,从而加快了计算速度。算法中用MFC的CObList类和CArray类的对象来动态存储数据,大大节约了内存开销,是一种高效的算法。另外,算法编制的软件,已得到了有效的应用。  相似文献   

13.
圆形窗口的凸多边形裁剪   总被引:2,自引:0,他引:2  
已有的多边形裁剪算法都是针对矩形窗口或凸多边形窗口进行的。但是,在实际应用中,也常常使用圆形窗口对多边形区域进行裁剪和填充。因此,本文提出一个对干圆形窗口的凸多边形区域裁剪法,并且给出作出凸多边形P在窗口V之内部分的定理。  相似文献   

14.
一个有效的多边形裁剪算法   总被引:28,自引:0,他引:28  
刘勇奎  高云  黄有群 《软件学报》2003,14(4):845-856
多边形裁剪与线剪裁相比具有更广泛的实用意义,因此它是目前裁剪研究的主要课题.提出了一个多边形裁剪多边形的有效算法.其中的多边形都可以是一般多边形,既可以是凹多边形,也可以是有内孔的多边形.该算法不仅可以求多边形的"交"(多边形裁剪),而且可以求多边形的"并"和"差".它是以所提出的一系列新方法和新技术为基础而形成的.首先,该算法使用单线性链表数据结构,与其他使用双链表或树结构的算法相比,具有占用空间少及处理速度快的特点;其次,找到了两个多边形之间进、出点之间的关系.再通过合理的数据结构处理,减少了算法对多边形链表的遍历次数,而且允许多边形既可以按顺时针方向也可以按逆时针方向输入.最后,判断和计算交点是裁剪算法的主要工作.提出了一个具有最少计算量的交点判断和计算方法,进一步加快了算法的运行速度.与其他同类算法进行了比较,结果表明,新算法具有最简单的结构和最快的执行速度.  相似文献   

15.
陈涛 《计算机科学》2006,33(12):217-220
本文对目前常用的二维线段裁剪算法进行分析,提出了一种基于Cyrus-Beck算法的改进算法,使其能够扩展到对凹多边形的处理,通过对线段与裁剪窗口位置关系的严格判断将求交次数减到最少,并且通过对交点性质的判断来识别出线段的可见部分。理论分析和实验结果均表明该算法优于目前处理任意多边形裁剪框的算法。  相似文献   

16.
图形裁剪算法研究   总被引:6,自引:0,他引:6  
本文介绍和研究直线、曲线和多边形的最新裁剪算法,包括作者近期的研究成果。首先对于矩形窗口,介绍了直线裁剪算法,圆和椭圆裁剪算法以及参数曲线的裁剪算法。然后,介绍了多边形窗口的直线裁剪算法和多边形窗口的多边形裁剪算法以及区域间的“交”、“差”和“并”操作。最后,介绍了圆形和椭圆形窗口的直线裁剪算法。  相似文献   

17.
提出了一种新颖而实用的圆形窗口简单多边形填充算法,它具有快速裁剪与填充双重功能,也可完成单纯地裁剪功能,该算法将多边形的边视为有向线段,通过引入多边形顶点的入边和出边产我点的概念,深入研究了多这形被圆形窗口裁剪后区域的确定性填充问题,使截剪功能隐含于填充过程中,从而节省了填充之前的裁剪过程。  相似文献   

18.
针对大规模矢量线与大量裁剪窗口同时出现的线裁剪算法存在的三个主要问题,减少线段求交次数、简化交点出入属性计算以及无交点矢量线的取舍,本文提出了一种基于双空间索引的大规模线图任意多边形裁剪算法。算法根据裁剪多边形的边分别建立R-树索引和均匀Cell索引,应用两种索引各自的优点大幅减少被裁剪线段与裁剪多边形上线段的求交次数。在此基础上,基于均匀网格索引,提出局部射线法,简化交点出入属性计算和无交点矢量线的取舍。本文在传统算法基础上提出三点改进:首先提出基于两种空间索引模型进行线段求交计算,保证算法在理论上具有较低的时间复杂度;其次,在射线法和网格索引基础上提出局部射线法,使得判断每个交点出入属性的时间复杂度为O(1)~ O(n~(1/2)),与参考文献中的算法相比,此方法的优点是避免判断多边形上顶点的方向;最后,算法中裁剪多边形可以是包含任意多个洞的任意简单多边形,克服传统算法中对裁剪多边形的特定约束条件。  相似文献   

19.
针对大规模等值线图裁剪算法面临的两个主要问题,如何减少线段求交次数和判别保留部分的起止点,提出一种针对大规模等值线图的任意多边形裁剪算法.该算法首先使用等网格分割方法,在等值线线段与裁剪多边形边之间建立网格索引,减少线段求交次数;同时,在网格数据结构基础上,采用局部射线法,很好地解决了判断交点在裁剪多边形内外时间复杂度过大的问题,使得算法可以快速判断出需要保留(剔除)的等值线部分.本文算法的优点是能够在求出交点的基础上快速获得需要保留(剔除)部分的起止点;同时,算法中裁剪多边形可以是包含任意多个洞的任意简单多边形,克服传统算法中对裁剪多边形的特定约束条件.本文算法易于实现且高效.  相似文献   

20.
基于顶点编码的多边形窗口线裁剪高效算法   总被引:12,自引:0,他引:12  
从多边形窗口线裁剪的本质特征出发,首次提出窗口顶点编码的新概念。以被裁剪直线为参照系,将多边形窗口划分为正区、负区和近零区三类区域,从而快速完成多边形窗口顶点编码。通过窗口顶点编码与传统的线段编码相结合,无须求交即可快速排除大部分窗外线段;进一步可以直接得到与直线相交的窗口边,加快了求交进程。更有意义的是,通过窗口顶点编码还可以准确判断并高效处理如下两类特殊相交情况:裁剪直线通过多边形的顶点、裁剪直线通过多边形的边。实验结果表明,新算法提高了裁剪效率并具有很好的稳定性。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号