CN102890815B - 图形处理方法 - Google Patents

图形处理方法 Download PDF

Info

Publication number
CN102890815B
CN102890815B CN201110202619.7A CN201110202619A CN102890815B CN 102890815 B CN102890815 B CN 102890815B CN 201110202619 A CN201110202619 A CN 201110202619A CN 102890815 B CN102890815 B CN 102890815B
Authority
CN
China
Prior art keywords
polygon
viewing area
sub
little
pending
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110202619.7A
Other languages
English (en)
Other versions
CN102890815A (zh
Inventor
牟文杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pateo Connect and Technology Shanghai Corp
Original Assignee
Shanghai Pateo Electronic Equipment Manufacturing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Pateo Electronic Equipment Manufacturing Co Ltd filed Critical Shanghai Pateo Electronic Equipment Manufacturing Co Ltd
Priority to CN201110202619.7A priority Critical patent/CN102890815B/zh
Publication of CN102890815A publication Critical patent/CN102890815A/zh
Application granted granted Critical
Publication of CN102890815B publication Critical patent/CN102890815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种图形处理方法,包括提供待处理多边形和显示区域,将所述待处理多边形作为多边形队列;依次选取显示区域的一边对所述多边形队列进行切割,直至显示区域所有的边均对所述多边形队列进行切割;其中,在显示区域的每一边对所述多边形队列切割后,还包括判断切割结果是否存在一个以上子多边形:若是,则对所述切割结果进行拆分,形成若干数目相互独立的子多边形,并将拆分后的子多边形更新至多边形队列;若否,则将所述切割结果更新至多边形队列。本发明对多边形进行切割处理,形成独立子多边形,同时避免形成无用的切割边,且算法简单、计算效率高、时间复杂度低。

Description

图形处理方法
技术领域
本发明涉及矢量化数据技术领域,尤其涉及一种用于电子地图的图形处理方法。
背景技术
在地理信息系统(GeographicInformationSystem,GIS)、车载导航系统以及互联网地图应用领域,都会应用到矢量化的地图数据,对这些矢量化数据的处理是上述领域的一个重要工作。其中,对于多边形的切割处理是一个较难的技术点。
具体地,在多边形图形显示的过程中,往往需要确定多边形图形的哪些部分落在显示区域内,哪些部分落在显示区域之外。所述显示区域为用于显示的视口或视区,如显示器所对应的区域。以便只显示位于显示区域内的图形,进而简化矢量化数据的处理程序。一般通过切割的方法以决定图形中哪些部分位于显示区域内。即需要对多边形图形进行一些几何上的切割处理,以便去除落在显示区域之外的部分,保留位于显示区域以内的部分。
现有技术提供有多种多边形处理算法,如Sutherland-Hodgeman算法,所述算法是基于用直线对多边形进行切割。但所述算法在切割凹多边形可能会形成若干子多边形,且所述子多边形之间不是相互独立,并通过位于子多边形之间的来回切割边将所述多个子多边形连接,以形成一个封闭的多边形。即各个子多边形之间还存在有不必要的切割边,使得计算量增大,降低计算效率。这样的结果不但增加额外的切割边,而且在某些绘图系统中还不能正常地将多个子多边形进行连接,以获得封闭的多边形。
现有技术还提供一种多边形切割算法Weiler-Atherton算法,虽然可以正确处理凹多边形的切割,但是算法复杂性比较高,计算效率低,其时间复杂度为O(n^2)。
具体的关于时间复杂度表述如下:算法在处理一个由n个元素组成的对象时,处理时间为以n为变量的函数f(n),且处理时间会随着数值n的增大而增大,对应地:若函数f(n)表示为f(n)=A*n,则时间复杂度为O(n)级别;若函数f(n)表示为f(n)=A*n^2+B*n+C,则时间复杂度为O(n^2),以此类推。即算法的时间复杂度主要是由函数f(n)的最高次幂决定的。
基于上述情况,需要一种图形处理方法,不仅能够处理凹多边形,而且算法较简单,计算效率高,时间复杂度低。
发明内容
本发明解决的问题是提供一种图形处理方法,能够对多边形进行正确切割处理,且算法简单、计算效率高、时间复杂度低。
为解决上述问题,本发明提供一种图形处理方法,包括:
提供待处理多边形和显示区域,所述显示区域和待处理多边形具有重叠区域;
将所述待处理多边形存储至多边形队列单元,形成多边形队列,后续图形处理仅对多边形队列进行处理;
将所述显示区域的边作为切割边,并依次选取显示区域的切割边对所述多边形队列进行切割,直至显示区域所有的边均对所述多边形队列进行切割;
其中,在显示区域的每一边对所述多边形队列切割后,还包括判断切割结果是否至少由一个以上非独立的子多边形构成:
若是,则切割结果为待拆分多边形,并对所述待拆分多边形进行拆分,形成若干数目相互独立的子多边形,并将拆分后的子多边形更新至多边形队列;
若否,则将所述切割结果更新至多边形队列。
可选的,所述待处理多边形分为保留部分和舍弃部分,所述保留部分位于所述显示区域内,所述舍弃部分位于所述显示区域外。
可选的,对所述待拆分多边形进行拆分包括:提供经显示区域的切割边切割获得的切割结果,所述切割结果至少由一个以上非独立的子多边形构成;所述切割边与待拆分多边形的交点为切割点;定义切割边的第一方向及切割点序号,沿第一方向,所述切割点序号依次增大,按照排序后的切割点建立索引;按索引对待拆分多边形进行拆分。
可选的,所述第一方向为所述切割边两端中选定的一端的延长方向。
可选的,按照如下顺序对切割点进行排序:将待处理多边形放置于正交坐标系中,所述正交坐标系包括X轴和Y轴;若切割边与X轴夹角绝对值小于45°,则切割点按X值从小到大排序;若切割边与X轴夹角绝对值不小于45°,则切割点按Y值从小到大排序。
可选的,定义待处理多边形的线条走向,使得在索引中序号最小的切割点处,所述待处理多边形的线条由显示区域外进入显示区域内。
可选的,沿所述待处理多边形的线条走向,所述切割点分为入点和出点:在所述入点处,所述待处理多边形的线条由显示区域外进入显示区域内;在所述出点处,所述待处理多边形的线条由显示区域内进入显示区域外。
可选的,按照索引顺序,选取未标记的入点,作为第一入点,并进行标记;从所述第一入点开始,依次循环执行弧段搜索程序,及位于所述弧段搜索程序后的连接线程序,直至与第一入点构成连接线,形成独立的子多边形。
可选的,形成独立的子多边形后,还包括进行判断,索引中是否还存在有未标记的入点:若无,则结束多边形拆分;若有,则以未标记的入点为起点,形成独立的子多边形,直至索引内不存在未标记的入点。
可选的,所述弧段搜索程序包括:按照线条走向,搜索与入点对应的出点,所述入点、出点及之间的线条构成弧段,且对所述包括入点和出点在内的弧段进行标记。
可选的,所述连接线程序包括:按照索引顺序,搜索紧邻出点并序号小于所述出点的入点,并将出点和入点进行连接形成连接线,并对包括入点和出点在内的连接线进行标记。
可选的,构成所述独立的子多边形的弧段数目为一条或一条以上,构成所述独立的子多边形的连接线数目为一条或一条以上。
与现有技术相比,本发明具有以下优点:
通过显示区域的每一边对待处理多边形进行切割,形成若干数目的子多边形,且所述子多边形之间互相独立,不存在切割过程中引起的切割边,降低切割的计算量,提高算法效率。
进一步地,通过对所述显示区域和多边形的切割点经过排序以建立索引,并依照所述索引顺序对多边形进行切割,使得所述切割过程简单易行,降低切割的计算量,提高算法效率。
所述图形处理方法所消耗的时间与所处理的多边形的切割点的点数n呈线性增长,时间复杂度为O(n),时间复杂度低。
附图说明
图1至图6是现有技术的图形处理方法的过程分解示意图;
图7是本发明一个实施例的图形处理方法的流程示意图;
图8和图9是本发明一个实施例的多边形拆分方法的流程示意图;
图10至图14是本发明一个实施例的图形处理方法的过程分解示意图。
具体实施方式
如图1所示,多边形A为显示区域,多边形B为待处理多边形,所述多边形B为凸多边形。通过多边形A作为显示区域,去覆盖待处理多边形B。凡是多边形B落在多边形A中的部分都要保留,其余的部分舍弃。基于直线切割多边形的切割方法为利用多边形A的每一条边依次去切割多边形B。本图示出的多边形A具有四条边,分别为a1、a2、a3和a4。
如图2所示,用如图1所示的多边形A的一条边a1切割多边形B所得的结果为唯一的子多边形c0;如图3所示,用如图1所示的多边形A的一条边a2切割图2所示的子多边形c0,得到唯一的子多边形c1;如图4所示,用如图1所示的多边形A的一条边a3继续切割图3所示的子多边形c1,得到唯一的子多边形c2;以此类推,直到多边形A的所有边都切割完毕。图5为最终裁剪结果,即边a4切割后,得到唯一的子多边形c3,所述子多边形c3与图4所示的子多边形c2相同。
如图6所示用多边形A2去切割凹多边形B2,所述多边形A2为显示区域。依据现有技术对所述凹多边形B2进行切割后,获得子多边形B21和子多边形B22,且所述子多边形B21和子多边形B22之间不是独立的,还存在有切割边001或切割边002。即通过切割边001或切割边002,将子多边形B21和子多边形B22进行连接构成一个封闭的多边形。具体通过两条来回的切割边001或两条来回的切割边002将子多边形B21和子多边形B22依次进行连接,以形成封闭的多边形。
为能够对多边形进行正确切割处理,以形成若干数目的独立子多边形,尤其是对凹多边形进行正确切割处理,以形成若干数目的独立子多边形,避免形成用于连接子多边形的切割边,且算法简单,计算效率高。本发明提供一种图形处理方法,包括:
首先提供待处理多边形和显示区域,所述显示区域和待处理多边形具有重叠区域;
将所述待处理多边形存储至多边形队列单元,形成多边形队列,后续图形处理仅对多边形队列进行处理;
将所述显示区域的边作为切割边,并依次选取显示区域的切割边对所述多边形队列进行切割,直至显示区域所有的边均对所述多边形队列进行切割;
其中,在显示区域的每一边对所述多边形队列切割后,还包括判断切割结果是否至少由一个以上非独立的子多边形构成:
若是,则切割结果为待拆分多边形,并对所述待拆分多边形进行拆分,形成若干数目相互独立的子多边形,并将拆分后的子多边形更新至多边形队列;
若否,则将所述切割结果更新至多边形队列。
下面将结合具体的附图对本发明一实施例的图形处理方法进行详细的说明。
如图7所示为本发明一实施例的图形处理方法流程示意图,包括:
开始。执行步骤S1,把待处理多边形存储至多边形队列单元,作为多边形队列。同时还包括提供显示区域,后续将用所述显示区域去切割所述多边形队列。其中,位于所述显示区域内的待处理多边形为保留部分,位于所述显示区域外的待处理多边形为舍弃部分。
执行步骤S2,依次取显示区域的一边所在直线作为当前边。
执行步骤S3,用当前边所在直线切割多边形队列。
执行步骤S4,进行判断:切割结果是否存在一个以上的子多边形。
若切割结果存在有一个以上的子多边形,即包括有若干数目的互相不独立的子多边形,则执行步骤S5,将子多边形拆分为若干独立的子多边形;接着执行步骤S6,将互相独立的子多边形更新至多边形队列。
若切割结果不存在有一个以上的子多边形,即切割结果为一个独立的多边形,则不需要执行步骤S5,直接执行步骤S6,将互相独立的子多边形更新至多边形队列。
将独立的子多边形更新至多边形队列后,则执行步骤S7,进行判断:当前边是否为显示区域最后一边。若是,则所述多边形切割结束。
若所述当前边不是显示区域的最后一边,则循环开始执行步骤S2,依次取显示区域的一边所在直线作为当前边,对待处理多边形进行切割。已经切割使用过的边则不再进入切割的流程中。
其中,对所述待拆分多边形进行拆分,包括:提供经显示区域的切割边切割获得的待拆分多边形,所述待拆分多边形包括若干数目相互不独立的子多边形;所述切割边与待拆分多边形的交点为切割点;定义切割边的第一方向及切割点序号,沿所述第一方向,所述切割点序号依次增大,按照排序后的切割点建立索引;按索引对待拆分多边形进行拆分。所述第一方向为所述切割边两端中选定的一端的延长方向。
图8和图9为本发明一实施例的多边形拆分方法的流程示意图,即为图7中步骤S5中对互相不独立的子多边形进行拆分,形成若干独立的子多边形。
如图8所示,开始多边形拆分的流程:提供若干数目且不独立的子多边形,所述若干数目的子多边形为待处理多边形经过如图7所示的步骤S1至步骤S4获得,即通过显示区域的切割边切割获得。详细请参考前述。
执行步骤S10,定义切割边的第一方向及切割点序号,沿第一方向,所述切割点序号依次增大,按照排序后的切割点建立索引。
具体地,所述第一方向为切割边两端中选定的一端的延长方向。作为排序的具体实施方式,可将待处理多边形放置于正交坐标系中,所述正交坐标系由X轴和与X轴正相交的Y轴构成。则对应的,切割边上的切割点分别对应具有坐标数值即X值和Y值。
如图9所示,步骤S011、S021及S022构成图8所示的步骤S10。以切割边与X轴的夹角作为判断标准,执行步骤S011,判断当前切割边与X轴夹角绝对值是否小于45°:若当前切割边与X轴夹角绝对值小于45°,则执行步骤S021,切割点按X值从小到大排序,并建立索引;若当前切割边与X轴夹角绝对值不小于45°,则执行步骤S022,切割点按Y值从小到大排序,并建立索引。
定义所述待处理多边形的线条走向,使得在索引中序号最小的切割点处,所述待处理多边形的线条由显示区域外进入显示区域内。
定义所述待处理多边形的线条走向后,所述切割点分类为入点和出点:在所述入点处,所述待处理多边形的线条由显示区域外进入显示区域内;在所述出点处,所述待处理多边形的线条由显示区域内进入显示区域外。
结合图8和图9,建立索引之后,执行步骤S20,按索引顺序找到第一个未标记的入点,并进行标记为第一入点。即若按照索引顺序,入点已被标记,则放弃被标记入点,按照索引顺序,寻找未被标记的入点。
后续将从所述第一入点开始,依次循环执行弧段搜索程序,及位于所述弧段搜索程序后的连接线程序,直至与第一入点构成连接线,形成独立的子多边形。
其中,所述弧段搜索程序包括:按照线条走向,搜索与入点对应的出点,所述入点、出点及之间的线条构成弧段,且对所述包括入点和出点在内的弧段进行标记。
所述连接线程序包括:按照索引顺序,搜索紧邻出点并序号小于所述出点的入点,并将出点和入点进行连接形成连接线,并对包括入点和出点在内的连接线进行标记。
结合图8和图9,执行步骤S30,即为所述弧段搜索程序:找到与入点对应的出点,构成弧段,并对包括入点和出点在内的弧段进行标记。
接着,执行步骤S40,即为所述连接线程序:按照索引顺序,搜索紧邻出点并序号小于所述出点的入点,并将出点和入点进行连接形成连接线,并对包括入点和出点在内的连接线进行标记。
结合图8和图9,紧接着对步骤S40获得的入点进行判断,即执行步骤S50,判断S40获得的入点与第一入点是否相同。
若相同,即判断结果为“Y”,则执行步骤S60,形成一个独立的子多边形。
若不相同,则循环执行步骤S30、步骤S40、及判断步骤S50,直至所述判断步骤S50的判断结果为“Y”,即直到步骤S40找到的入点与第一入点相同,则停止循环程序。
即依次循环执行弧段搜索程序,及位于所述弧段搜索程序后的连接线程序,直至与第一入点构成连接线,形成独立的子多边形。
同时参考图8和图9,步骤S60后执行步骤S70,即进行判断:索引中的入点是否全部处理完毕,若索引中的入点全部处理完毕,则表示待拆分的多边形已经全部被拆分为若干数目的独立的子多边形,则拆分过程结束。
若索引中的入点未全部处理完毕,则表示待处理多边形中还存在有未拆分的子多边形,则执行下列循环:执行步骤S20,按照索引顺序找到第一个未标记的入点,并依次执行步骤S30、步骤S40、判断步骤S50、步骤S60、判断步骤S70,直至判断步骤S70中的判断结果为索引中的入点全部处理完毕,则拆分过程结束。
图10至图14是本发明一个实施例的图形处理方法的过程分解示意图。如图10所示,首先提供有待处理多边形200及显示区域100。
本实施例中,所述显示区域100为矩形,具有切割边110、切割边120、切割边130和切割边140。作为其他实施例,还可以为其他形状,如三角形、五边形或六边形等其他形状。所述显示区域100为待处理多边形200用于显示的区域,如显示器对应的显示区域。
把待处理多边形200存储至多边形存储单元,作为多边形队列,后续的多边形处理过程仅对所述多边形队列进行处理。
参考图11,依次取显示区域100的一边所在直线作为当前边,并用当前边所在直线切割多边形队列。所述待处理多边形200分为保留部分和舍弃部分,保留部分位于所述显示区域100内部,舍弃部分位于所述显示区域100外部。
本实施例中,首先取的边是显示区域的切割边110,对所述多边形队列的待处理多边形200进行切割。切割后形成有位于所述显示区域100内部的子多边形210和子多边形220,且包括有连接所述子多边形210和子多边形220的切割边D1。为构成封闭的多边形,所述切割边D1为往返的两条切割边。即通过往返的两条切割边D1,将子多边形210和子多边形220进行连接,形成封闭的多边形。
对当前边,即切割边110对待处理多边形200进行切割的切割结果进行判断:是否存在一个以上的子多边形。若切割结果存在有一个以上的子多边形,则需要将子多边形拆分为若干独立的子多边形。若切割结果仅为一个子多边形,则将所述子多边形更新至多边形队列。
本实施例中,所述切割结果为两个子多边形和用于连接两者的切割边,则需要对其进行拆分。
如图12所示,所述待处理多边形200被切割边110切割后形成有子多边形210和子多边形220。其中,所述子多边形210和子多边形220通过切割边D1连接,为互相不独立的子多边形。后续将对所述子多边形210和子多边形220进行拆分。其中,切割边110与待处理多边形200具有若干数目的切割点。
如图12所示,选定切割边110两端中的其中一端的延长方向定义为切割边110的第一方向,并按所述切割边110的第一方向定义切割点的序号。按第一方向,所述切割点的序号从小到大排列,并按照所述切割点的排序建立索引。本实施例中,所述第一方向为切割边110的箭头所指示的方向。如图12所示,按照所述第一方向,所述切割点依次为P1、P2、P3、P4、P5、P6。作为其他实施例,所述第一方向还可以为切割边110另一端的延长方向,即与所述箭头相反的方向定义为切割边110的第一方向。所述第一方向选定后,则所述切割点的序号及建立的索引随即固定。
如图12所示,作为排序的具体实施方式,还可以将待处理多边形200放置于正交坐标系中,所述正交坐标系由X轴和与其正相交的Y轴构成。则对应的,切割边上的切割点分别对应具有坐标数值即X值和Y值。
以切割边110与X轴的夹角作为判断标准,判断当前切割边与X轴夹角绝对值是否小于45°:若当前切割边与X轴夹角绝对值小于45°,切割点按X值从小到大排序,并建立索引;若当前切割边与X轴夹角绝对值不小于45°,则切割点按Y值从小到大排序,并建立索引。本实施例中,所述切割边110与所述Y轴平行,且所述切割边110的第一方向与Y轴正向方向一致。则切割点按照Y值由小到大排序,依次为P1、P2、P3、P4、P5、P6。
定义所述第一方向后,则对应地,所述待处理多边形200具有线条走向,按照所述线条走向,在位于索引中序号最小的切割点处,所述待处理多边形200的线条由显示区域外进入显示区域内。本实施例中,满足上述定义条件的待处理多边形200的线条走向为顺时针方向。
进一步地,根据所述线条走向,所述切割点分类为入点和出点:在所述入点处,所述待处理多边形的线条由显示区域外进入显示区域内;在所述出点处,所述待处理多边形的线条由显示区域内进入显示区域外。本实施例中,入点为切割点P1、P3、P5,出点为切割点P2、P4及P6。
如图13所示,建立索引之后,按索引顺序找到第一个未标记的入点。若按照索引顺序,入点已被标记,则放弃该被标记的入点,直至找到第一个未被标记的入点。本实施例中,该步骤寻到的入点为P1。
继续参考图13,按照线条走向,找到与入点P1对应的出点,为P2。所述入点P1、出点P2及之间的线条构成弧段L1,并对包括入点P1和出点P2在内的弧段L1进行标记。
接着,在索引中找出与出点P2相邻且比P2序号小的入点,本实施例中,为切割点P1,连接出点P2和入点P1构成连接线。又因为且切割点P1与构成弧段的入点相同,则对应地,连接线与弧段构成封闭的子多边形210′。
继续参考图13,因为索引中的入点未全部处理完毕,则接着按照索引顺序,寻找第一个未标记的入点,按照前述,P1已经被标记,则寻到的是切割点P3。
继续参考图13,按照线条走向,找到与入点P3对应的出点,为P6。所述入点P3、出点P6及之间的线条构成弧段L21,并对弧段L21、入点P3和出点P6进行标记。
接着,在索引中找出与出点P6相邻且序号比P6小的入点。本实施例中,该点为切割点P5,连接出点P5和入点P6构成连接线。但切割点P5与构成弧段L21的入点P3不相同,则不能构成封闭的子多边形。
参考图14,按照线条走向,寻到与P5对应的出点,为P4。按照线条走向,所述P5、P4及之间的线条构成弧段L22,并对弧段L22、入点P5和出点P4进行标记。
接着,在索引中找出与出点P4相邻且序号比P4小的入点,本实施例中该点为切割点P3,连接出点P4和入点P3构成连接线。且因为切割点P3与入点P3相同,则对应地,出点P4和入点P3构成连接线与前面步骤形成的出点P5和入点P6构成连接线及弧段L21和L22形成封闭的子多边形220′。
经过上述步骤,索引中的入点是否全部处理完毕,若索引中的入点全部处理完毕。即表示待处理多边形已经全部被拆分为若干数目的子多边形,则多边形拆分过程结束。
继续参考图11,将独立的子多边形更新至多边形队列后,还需要进行判断,当前边是否为显示区域的最后一边。若是,则所述多边形切割结束。
若所述当前边不是显示区域的最后一边,则依次取显示区域的其他各边所在直线作为当前边,对多边形进行切割。其中,在每一边切割之后均有判断:切割结果是否存在一个以上的子多边形。若切割结果存在有一个以上的子多边形,则需要将子多边形拆分为若干独立的子多边形。若切割结果仅为一个子多边形,则将所述子多边形更新至多边形队列。
本实施例中,还需要依次取显示区域的切割边120、切割边130和切割边140对待处理多边形200进行切割。此处就不详细叙述。同时为了描述简单,本实施例中,再依次进行切割边120、切割边130和切割边140的切割结果即切割边110的切割结果。
与现有技术相比,本发明具有如下优点:
通过显示区域的每一边对待处理多边形进行切割,形成若干数目的子多边形,且所述子多边形之间互相独立,不存在切割过程中引起的切割边,降低切割的计算量,提高算法效率;
进一步地,通过对所述显示区域和多边形的切割点经过排序,以建立索引,并依照所述索引顺序对多边形进行切割,使得所述切割过程简单易行,降低切割的计算量,提高算法效率。
所述图形处理方法所消耗的时间与所待处理多边形的切割点的点数n呈线性增长,即算法的处理时间函数f(n)为:f(n)=A*n+B,A、B分别为系数。本发明图形的处理方式的时间复杂度为O(n),时间复杂度低。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

Claims (6)

1.一种图形处理方法,其特征在于,包括:
提供待处理多边形和显示区域,所述显示区域和待处理多边形具有重叠区域;
将所述待处理多边形存储至多边形队列单元,形成多边形队列,后续图形处理仅对多边形队列进行处理;
将所述显示区域的边作为切割边,并依次选取显示区域的切割边对所述多边形队列进行切割,直至显示区域所有的边均对所述多边形队列进行切割;
其中,在显示区域的每一边对所述多边形队列切割后,还包括判断切割结果是否至少由一个以上非独立的子多边形构成:
若是,则切割结果为待拆分多边形,并对所述待拆分多边形进行拆分,形成若干数目相互独立的子多边形,并将拆分后的子多边形更新至多边形队列;
若否,则将所述切割结果更新至多边形队列;
其中,对所述待拆分多边形进行拆分包括:提供经显示区域的切割边切割获得的切割结果,所述切割结果至少由一个以上非独立的子多边形构成;所述切割边与待拆分多边形的交点为切割点;定义切割边的第一方向及切割点序号,沿第一方向,所述切割点序号依次增大,按照排序后的切割点建立索引;定义待处理多边形的线条走向,使得在索引中序号最小的切割点处,所述待处理多边形的线条由显示区域外进入显示区域内;沿所述待处理多边形的线条走向,所述切割点分为入点和出点:在所述入点处,所述待处理多边形的线条由显示区域外进入显示区域内;在所述出点处,所述待处理多边形的线条由显示区域内进入显示区域外;按照索引顺序,选取未标记的入点,作为第一入点,并进行标记;从所述第一入点开始,依次循环执行弧段搜索程序,及位于所述弧段搜索程序后的连接线程序,直至与第一入点构成连接线,形成独立的子多边形;
所述弧段搜索程序包括:按照线条走向,搜索与入点对应的出点,所述入点、出点及之间的线条构成弧段,且对所述包括入点和出点在内的弧段进行标记;
所述连接线程序包括:按照索引顺序,搜索紧邻出点并序号小于所述出点的入点,并将出点和入点进行连接形成连接线,并对包括入点和出点在内的连接线进行标记。
2.如权利要求1所述的图形处理方法,其特征在于,所述待处理多边形分为保留部分和舍弃部分,所述保留部分位于所述显示区域内,所述舍弃部分位于所述显示区域外。
3.如权利要求1所述的图形处理方法,其特征在于,所述第一方向为所述切割边两端中选定的一端的延长方向。
4.如权利要求1所述的图形处理方法,其特征在于,按照如下顺序对切割点进行排序:将待处理多边形放置于正交坐标系中,所述正交坐标系包括X轴和Y轴;若切割边与X轴夹角绝对值小于45°,则切割点按X值从小到大排序;若切割边与X轴夹角绝对值不小于45°,则切割点按Y值从小到大排序。
5.如权利要求1所述的图形处理方法,其特征在于,形成独立的子多边形后,还包括进行判断,索引中是否还存在有未标记的入点:若无,则结束多边形拆分;若有,则以未标记的入点为起点,形成独立的子多边形,直至索引内不存在未标记的入点。
6.如权利要求1所述的图形处理方法,其特征在于,构成所述独立的子多边形的弧段数目为一条或一条以上,构成所述独立的子多边形的连接线数目为一条或一条以上。
CN201110202619.7A 2011-07-19 2011-07-19 图形处理方法 Active CN102890815B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110202619.7A CN102890815B (zh) 2011-07-19 2011-07-19 图形处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110202619.7A CN102890815B (zh) 2011-07-19 2011-07-19 图形处理方法

Publications (2)

Publication Number Publication Date
CN102890815A CN102890815A (zh) 2013-01-23
CN102890815B true CN102890815B (zh) 2016-01-06

Family

ID=47534309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110202619.7A Active CN102890815B (zh) 2011-07-19 2011-07-19 图形处理方法

Country Status (1)

Country Link
CN (1) CN102890815B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650127B (zh) * 2016-12-28 2020-07-10 北京华大九天软件有限公司 一种自动将多段线转换成封闭图形的方法
CN112115072B (zh) * 2020-09-03 2022-06-17 清华大学 时序图的处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455897A (en) * 1993-03-08 1995-10-03 The University Of Western Ontario Polygon and polyline clipping for computer graphic displays
CN101533525A (zh) * 2008-03-12 2009-09-16 中国科学院计算技术研究所 一种点面叠加分析方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455897A (en) * 1993-03-08 1995-10-03 The University Of Western Ontario Polygon and polyline clipping for computer graphic displays
CN101533525A (zh) * 2008-03-12 2009-09-16 中国科学院计算技术研究所 一种点面叠加分析方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
陈稆.《无重迭边的可重入多边形裁剪算法》.《计算机应用》.1989,(第2期),23-27. *
韩明峰.《介绍一种多边形裁剪算法 》.《 计算机应用研究 》.1998,(第5期), *

Also Published As

Publication number Publication date
CN102890815A (zh) 2013-01-23

Similar Documents

Publication Publication Date Title
CN103473658A (zh) 用于仓储的入库出库方法及其系统
CN103699869B (zh) 一种二维码识别方法及装置
CN107239617B (zh) 一种异形版图中基于轨道的紧凑布线方法
CN101727580A (zh) 图像处理装置、电子介质和图像处理方法
CN102890815B (zh) 图形处理方法
CN103714313A (zh) 二维码识别方法和装置
CN111141296B (zh) 车道线众包数据的多道路片段数据的预处理方法及系统
CN115762218A (zh) 一种车位地图生成方法、装置、设备及存储介质
CN115014328A (zh) 一种栅格地图的动态加载方法、装置、设备和介质
CN114779770A (zh) 全局路径规划控制方法、装置、设备、介质及程序产品
CN104143214A (zh) 一种电子地图多边形三角剖分方法与装置
CN101533525B (zh) 一种用于地理信息系统中的点面叠加分析方法
EP2343686A1 (en) Method and apparatus for simplifying complicated path
CN104599267A (zh) 切割轨迹生成方法及装置
CN110580506A (zh) 基于密度的聚类计算方法、装置、设备和存储介质
CN102360387A (zh) 一种拓扑1的矢量数据交换格式面要素的几何数据输出方法
CN114674336A (zh) 基于线段的路径规划方法
CN110917624B (zh) 路径确定方法、装置及设备
CN114581292A (zh) 一种二维图像的三维标注方法及装置
CN105303593A (zh) 画布元素处理方法及装置
CN106371780B (zh) 矢量图形处理方法和装置
CN107564289B (zh) 一种合并交通节点的道路网预处理方法
CN102456000A (zh) 用于消除页面内裂缝的方法和装置
KR20150012921A (ko) 선박 설계 방법
CN104809430A (zh) 一种手掌区域识别方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Graphic processing method

Effective date of registration: 20201130

Granted publication date: 20160106

Pledgee: Jiading Branch of Shanghai Bank Co.,Ltd.

Pledgor: SHANGHAI PATEO ELECTRONIC EQUIPMENT MANUFACTURING Co.,Ltd.

Registration number: Y2020310000046

PE01 Entry into force of the registration of the contract for pledge of patent right
CP03 Change of name, title or address

Address after: 201815 208, building 4, No. 1411, Yecheng Road, Jiading Industrial Zone, Jiading District, Shanghai

Patentee after: Botai vehicle networking technology (Shanghai) Co.,Ltd.

Address before: 200233 block F2, 6 / F, Zhaofeng global building, 1800 Zhongshan West Road, Xuhui District, Shanghai

Patentee before: SHANGHAI PATEO ELECTRONIC EQUIPMENT MANUFACTURING Co.,Ltd.

CP03 Change of name, title or address
PM01 Change of the registration of the contract for pledge of patent right

Change date: 20230921

Registration number: Y2020310000046

Pledgor after: Botai vehicle networking technology (Shanghai) Co.,Ltd.

Pledgor before: SHANGHAI PATEO ELECTRONIC EQUIPMENT MANUFACTURING Co.,Ltd.

PM01 Change of the registration of the contract for pledge of patent right