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

2.
用VC++实现的任意多边形裁剪算法   总被引:5,自引:0,他引:5  
李海姣  张维锦 《计算机应用》2005,25(Z1):421-423
提出了一个用VC++语言实现的凸多边形、凹多边形,也可以是带内环的多边形的裁剪算法,可以求上述多边形的"交"、"并"以及"差".首先,该算法使用VC++支持的CObList类和CArray类的对象存储数据,具有占用内存空间少及处理速度快的特点;再通过算法和数据结构的设计不仅使得多边形顶点可按顺时针方向或逆时针方向输入,而且减少了求解过程中对多边形顶点数据的遍历次数;基于判断和计算交点是裁剪算法的主要工作,文中引入了求交前的预处理,避免了大量不必要的求交,降低了算法的时间复杂度.最为重要的是该算法不需要对两多边形的边重合或两多边形在顶点处相交的情况作特殊处理.  相似文献   

3.
任意多边形窗口的线裁剪   总被引:1,自引:0,他引:1  
已有的线裁剪都是针对矩形窗口或凸多边形窗口的。对于任意的多边形窗口 (包括凹多边形 )的线裁剪 ,目前尚无有效的算法。但因为凹多边形的线裁剪在计算机图形学中有广泛的应用前景 ,如在处理图形的反走样问题及隐藏线、隐藏面、阴影等问题中 ,该算法是非常有用的工具。因此 ,开发此算法是很有必要的。  相似文献   

4.
现有的任意多边形窗口的圆裁剪算法存在算法繁琐等问题,且没有考虑多边形是带内环的情况,本文提出了一种基于交点参数分析的多边形窗口的圆裁剪算法,只需对多边形边与圆的交点在边所在直线的参数值进行比较,即可判断出交点的进出点特性,交点排序后,通过进点?出点组合,即可获得裁剪窗口内的圆弧,完成裁剪.编程实践的实例结果也证明本算法是切实可行的,本文的方法既适用于仅有外环的一般多边形裁剪窗口,也适用于带内环的任意多边形裁剪窗口的圆裁剪,因此,算法更具有通用性.  相似文献   

5.
多边形裁剪算法研究与实现   总被引:1,自引:0,他引:1  
多边形的裁剪算法在计算机图形学中占有很重要的地位,在其他领域也有重要应用。本文深入研究了多边形裁剪的两种典型算法,用C语言实现了算法,并列出具体实例来参照算法的执行。  相似文献   

6.
一个有效的多边形裁剪算法   总被引:5,自引:0,他引:5  
通过对相交多边形交点的完备分类,给出了一个可靠的任意多边形裁剪算法.结果表明,该算法非常稳定可靠,且能处理各种奇异情况.  相似文献   

7.
直线段的裁剪是图形绘制中的基本问题,针对当前主流的直线段裁剪算法,或者不能适应一般多边形窗口的裁剪,或者在复杂裁剪情况下裁剪效率低下的问题,提出了一种高效的一般多边形线段裁剪算法.该算法排除掉明显不在裁剪窗口内的直线段,以及相交于伪交点的情况,再利用改进的交点计数法确定位于窗口内的区间.实验结果表明,该算法不仅具有高效性,还能适应于复杂的裁剪情况.  相似文献   

8.
简单多边形的核是位于多边形内部的一个点集,而且这个点集中的任意一点与多边形边界上的任意点的连线都属于这个多边形的内部。核的这一性质在监视器安放等问题上得到了应用。考察了简单多边形的核在构成方面的性质,结合已有的成果,提出了一种求简单多边形核的新算法。该算法可以较快地对多边形的核为空的情况加以报告,而且在有核的情况下快速求解到核多边形的顶点序列。新的求核算法容易理解,而且易于实现,可以广泛地应用于实际问题。  相似文献   

9.
本文提出一种在标准 Sutherland—Hodgman 多边形裁剪算法基础上扩充的重迭边消去算法。本算法在沿着窗口边沿直线对多边形的各边进行裁剪的时候,建立了一个中间结果顶点队列和一个交点队列,然后通过顶点追溯方法产生出作为裁剪结果的一列子多边形.这些子多边形的定义方式与输入多边形相同,不存在重迭的边,而且仍然保持可重入性.  相似文献   

10.
点在多边形内的检测是计算几何中的一个基本问题,有着广泛的应用需求。已提 出许多方法减少要测试的多边形的边以加速。其中,均匀网格法具有很好的作用,因为各网格 中的边很少,而测试点可迅即定位于一个网格。我们曾提出一种均匀网格法,预计算各网格中 心点位于多边形内/外的属性,然后将测试点与所在网格的中心点连线,检测该连线与多边形的 边的相交情况即可。其预处理和检测的复杂度分别为 O(N)和 O( N ),N 为多边形的边数。本 文在此基础上进一步改进,预计算网格交点位于多边形内/外的属性,然后将测试点与其邻近网 格交点的连线,转换为与坐标轴平行的两条相连直线段,以提高与多边形边求交计算的便捷性。 实验结果表明,可将检测速度提高 2 倍多。  相似文献   

11.
Boolean operations on general planar polygons   总被引:16,自引:0,他引:16  
Computing boolean operations between general planar polygons is one of the fundamental problems in geometric and solid modeling. In this work we present a new algorithm to calculate intersection, union and difference, valid for general planar polygons (manifold and non-manifold, with and without holes), based on a formal representation system. This formal model is based on the concept of simplicial chain, developed by Feito and Rivero (Computers & Graphics 22(5) (1998)). Using algebraic operations between simplicial chains we can obtain any general polygon and the Boolean operations between them. The fact of that our algorithm is based on simplicial chains and their operations, reduces the study of special cases, and allows us to develop a robust and efficient algorithm to calculate the intersection between general polygons.  相似文献   

12.
平面扩展简单多边形的布尔运算   总被引:7,自引:2,他引:7  
Rivero等最近提出了一种用来计算任意平面简单多边形的交、并、差的新方法,在这一算法基础上进行扩展,使其可以应用到带圆锥曲线边的平面扩展简单多边形上,并给出了完整的数学模型。  相似文献   

13.
给出一种稳定、高效的三维网格模型的布尔运算算法。该算法首先,基于网格模型原始的拓扑关系,结合层次包围盒相交检测实现网格模型相交区域快速定位;然后,采用改进的空间三角形求交算法求解离散交线段数据,并对单个三角形重新进行Delaunay三角剖分;最后,通过建立交线段与相交三角形间的拓扑关系对交线快速跟踪提取,通过局部区域快速分类组合,实现三角网格模型的精确布尔运算。该算法能有效地处理各种特殊情况且运行稳定;程序实现简单,实例证明符合工程需求。  相似文献   

14.
Boolean Operations on Conic Polygons   总被引:1,自引:0,他引:1       下载免费PDF全文
An algorithm for Boolean operations on conic polygons is proposed.Conic polygons are polygons consisting of conic segments or bounded conics with directions.Preliminaries of Boolean operations on general polygons are presented.In our algorithm,the intersection points and the topological relationships between two conic polygons are computed.Boundaries are obtained by tracking path and selecting uncrossed boundaries following rule tables to build resulting conic polygons. We define a set of rules for the i...  相似文献   

15.
16.
在多边形内、外侧边界识别的基础上,充分利用多边形本身是一个整体的事实,我们提出了一种基于“内点”(多边形内的点)识别的布尔运算算法,简化了布尔运算的复杂性,从根本上解决了由于多边形问可能存在重合点、重合线而造成的布尔运算不稳定问题。  相似文献   

17.
Boolean set operations on non-manifold boundary representation objects   总被引:3,自引:0,他引:3  
For Boolean operations on geometric models, we have developed an intersection algorithm for non-manifold boundary models with vertices, linear edges, planar faces, and volumetric regions. The algorithm operates by intersecting entities in an ordered manner, from vertex to edge, then to face elements. Singular intersections are systematically handled by determining if an entity in one object is within a tolerance region of the entity in the other object. The algorithm performs Boolean operations between objects of different dimensionality as well as solids. An implementation of the proposed algorithm and the experimental results are briefly discussed.  相似文献   

18.
19.
Given a set S of n disjoint convex polygons {Pi∣1?i?n} in a plane, each with ki vertices, the transversal problem is to determine whether there exists a straight line that goes through every polygon in S. We show that the transversal problem can be solved in O(N+nlogn) time, where N=∑i=1nki is the total number of vertices of the polygons.  相似文献   

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

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