一种对多边形进行逻辑运算处理的方法及装置制造方法及图纸

技术编号:6533664 阅读:178 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种对多边形进行逻辑运算处理的方法及装置,其中方法包括:确定组成各多边形的各个第一向量,以及各个第一向量的交点;对存在交点但交点不为端点的第一向量,在交点处分解为多个第二向量;遍历各第二向量和未分解的第一向量的端点,将重合的端点确定为重合点;根据重合点的每个关联向量的边界状态,确定符合逻辑运算结果的向量并输出;关联向量为端点为重合点的第一向量和/或第二向量。本发明专利技术能够对进行逻辑运算的多个多边形出现线段相交或重合的各种情况进行处理,对于参与逻辑计算的多边形的复杂度及数量都没有限制,可以实现对多个形状复杂的多边形进行矢量化的逻辑运算处理。

【技术实现步骤摘要】

本专利技术涉及图形处理领域,尤其涉及一种对多边形进行逻辑运算处理的方法及装置
技术介绍
多边形可以看作为由多条直线段向量,曲线段向量连接而成的向量链表,该链表首尾相联构成循环链表。如果这个循环链表中相邻向量的交点是它们之间共用的单个点, 同时不相邻的向量不相交,则该链表描述的多边形为简单多边形。一般在表示物体的轮廓时或者表示一个路径细节时,都是采用二维或多维的多边形进行描述的。在相应的领域经常需要直接对多边形进行处理。例如计算机辅助设计与制造(CAD/CAM)中对机械结构,土建工程等的设计;集成电路版图设计和绘制;机器人路径规划;地理信息系统中的路径规划等。在对多边形的处理与运算中,逻辑运算是最基本的运算方式,包括多边形的求交集、求并集等操作。在原来的大部分图形图像处理软件中,对多边形间的运算处理都是光栅化后,直接采用点阵的运算实现。例如求解两个多边形的交集,是通过如下的方式获取的。首先将第一个多边形采用图形学的相关算法生成相应的黑白点阵,其中黑点表示该点在区域范围内,白点表示该点在区域范围外;然后采用同样的方法将第二个多边形生成相应的黑白点阵,然后将两个黑白点阵求交集,即同一位置点上只有都为黑点是结果才为黑点。同样求解两个多边形的并集也可以采用同样的方法进行实现。但是在图形处理领域更多的需要是对多边形或轮廓进行矢量化的处理,要求处理前后都是以矢量方式描述对应的多边形或轮廓,因而这种点阵化的处理方式已经无法满足目前各个领域内对图形处理的需要。
技术实现思路
本专利技术实施例提供了一种对多边形进行逻辑运算处理的方法及装置,用于实现对简单多边形和复杂多边形进行矢量化逻辑运算处理。本专利技术实施例提供的一种对多边形进行逻辑运算处理的方法,包括确定组成各多边形的各个第一向量,以及所述各个第一向量的交点;对存在交点但交点不为端点的第一向量,在交点处分解为多个第二向量;遍历各第二向量和未分解的第一向量的端点,将重合的端点确定为重合点;根据重合点的每个关联向量的边界状态,确定符合逻辑运算结果的向量并输出; 所述关联向量为端点为重合点的第一向量和/或第二向量。本专利技术实施例提供的一种对多边形进行逻辑运算处理的装置,包括第一确定单元,用于确定组成各多边形的各个第一向量,以及各个第一向量的交点分解单元,用于对存在交点但交点不为端点的第一向量,在交点处进行分解为多个第二向量;第二确定单元,用于遍历各第二向量和未分解的第一向量的端点,将重合的端点确定为重合点;逻辑计算结果输出单元,用于根据重合点的每个关联向量的边界状态,确定符合逻辑运算结果的向量并输出;所述关联向量为端点为重合点的第一向量和/或第二向量。本专利技术实施例的有益效果包括本专利技术实施例提供的对多边形进行逻辑运算处理的方法及装置,首先确定组成各多边形的各个第一向量,以及所述各个第一向量的交点,对存在交点但交点不为端点的第一向量,在交点处分解为多个第二向量,遍历各个第二向量和未分解的第一向量的端点,将重合的端点确定为重合点,根据重合点每个关联向量的边界状态,确定符合逻辑运算结果的向量并输出,本专利技术实施例提供的对多边形进行逻辑运算处理的方法及装置,能够对进行逻辑运算的多个多边形出现线段相交或重合的各种情况进行处理,对于参与逻辑计算的多边形的复杂度及数量都没有限制,可以实现对多个形状复杂的多边形进行矢量化的逻辑运算处理,并且不用判断各多边形所有的向量是否符合逻辑运算结果,进行只需要对重合点的关联向量进行判断,将其中符合逻辑运算结果的向量输出,得到多边形逻辑运算的结果,运算效率较高。附图说明图1为本专利技术实施例提供的对多边形进行逻辑运算处理的方法的流程图;图2为本专利技术实施例提供的组成多边形P和多边形Q向量示意图;图3为本专利技术实施例提供的多边形P和多边形Q分解后的向量示意图;图4为本专利技术实施例提供的输出多边形P和多边形Q的交集的结果的示意图;图5为本专利技术实施例提供的对多边形进行逻辑运算处理的装置的结构示意图。具体实施例方式下面结合附图,用具体实施例对本专利技术提供的一种对多边形进行逻辑运算处理的方法及装置进行详细的说明。本专利技术实施例提供的一种对多边形进行逻辑运算处理的方法,如图1所示,包括如下几个步骤S101、确定组成各多边形的各个第一向量,以及各个第一向量的交点;S102、对存在交点但交点不为端点的第一向量,在交点处进行分解为多个第二向量;S103、遍历各第二向量和未分解的第一向量的端点,将重合的端点确定为重合点;S104、根据重合点的每个关联向量的边界状态,确定符合逻辑运算结果的向量并输出;关联向量为端点为重合点的第一向量和/或第二向量。下面对上述各步骤进行详细地说明。SlOl中,确定组成待运算的各多边形的第一向量,具体来说,就是对每个多边形按照顺时针或逆时针的顺序依次确定出连接各端点和\或控制点的第一向量。构成多边形的基本单元是端点或者控制点,某一端点直接指向相邻的另一端点的向量为直线向量,某一端点指向对应的控制点再指向相邻的另一端点的向量为曲线向量。多边形的每个端点或控制点按照顺时针或逆时针的顺序排序,每个端点或控制点都包含自身指向后一个端点的前向向量,以及前一个端点或控制点指向自身的后向向量。确定多边形的每个端点或控制点的前向向量和后相向量,将相同的向量合并,得到的首尾相连的各个向量即为该多边形的各个向量。步骤SlOl中确定各第一向量的交点,具体过程如下确定各第一向量的端点在X和Y坐标轴上的坐标值;根据各个第一向量的端点的坐标值之间的位置关系,确定存在相交关系的第一向量之间的交点。在X、Y坐标轴中,确定每个向量的左端点和右端点,其中左端点为X坐标值较小的端点,右端点为X坐标值较大的端点,如果向量的两个端点的X坐标值相等,则确定Y坐标较大的端点为左端点,Y坐标较小的为右端点。如果在X轴和Y轴方向上,两个向量例如向量A和向量B的左右端点出现相互交错的现象,例如X轴方向上,向量A的左端点在向量B的左、右端点之间,而在Y轴方向上, 向量B的左端点在向量A的左右端点之间,则可以判断向量A和向量B之间相交。求解所有相交的直线向量、曲线向量之间的交点的坐标。S102中对存在交点但交点不是端点的第一向量在交点处进行分解,第一向量为直线向量的,分解后生成的多个第二向量也是直线向量,第一向量为曲线向量的,分解后生成的多个第二向量为曲线向量。经过S102的操作后,分解后生成的第二向量和未分解的第一向量,除了端点处相连之外,向量之间不存在交点。在上述步骤S103中,确定出重合点之后,还包括判断重合点的关联向量是否存在重合的向量。对于每个重合点来说,其关联向量如果存在重合的关系,那么,将重合的关联向量记录为同一个向量。上述步骤S104中,如果逻辑运算为求交集的运算,则遍历每个重合点的各关联向量,如果某个关联向量为某个多边形的边界,同时该关联向量又位于另一个多边形的填充区域内,该关联向量为符合逻辑运算结果的向量。如果逻辑运算为求并集的运算,则遍历每个重合点的各关联向量,如果某个关联向量为某个多边形的边界,同时该关联向量又位于另一个多边形的填充区域之外,该关联向量为符合逻辑运算结果的向量。上述步骤S104中,输出符合逻辑运算结果的向量,具体过程如下步骤a、设置某个重合点为运算结果多边形的起点,输出该起点符本文档来自技高网...

【技术保护点】
1.一种对多边形进行逻辑运算处理的方法,其特征在于,包括:确定组成各多边形的各个第一向量,以及所述各个第一向量的交点;对存在交点但交点不为端点的第一向量,在交点处分解为多个第二向量;遍历各第二向量和未分解的第一向量的端点,将重合的端点确定为重合点;根据重合点的每个关联向量的边界状态,确定符合逻辑运算结果的向量并输出;所述关联向量为端点为重合点的第一向量和/或第二向量。

【技术特征摘要】
1.一种对多边形进行逻辑运算处理的方法,其特征在于,包括确定组成各多边形的各个第一向量,以及所述各个第一向量的交点; 对存在交点但交点不为端点的第一向量,在交点处分解为多个第二向量; 遍历各第二向量和未分解的第一向量的端点,将重合的端点确定为重合点; 根据重合点的每个关联向量的边界状态,确定符合逻辑运算结果的向量并输出;所述关联向量为端点为重合点的第一向量和/或第二向量。2.如权利要求1所述的方法,其特征在于,所述确定组成各多边形的各个第一向量,包括对于每个多边形分别按照顺时针或逆时针顺序依次确定连接各端点和\或控制点的第一向量。3.如权利要求1所述的方法,其特征在于,确定各个第一向量的交点,包括 确定各第一向量的端点在X和Y坐标轴上的坐标值;根据各个第一向量的端点的坐标值之间的位置关系,确定存在相交关系的第一向量之间的交点。4.如权利要求1所述的方法,其特征在于,在将分解后的第二向量和未分解的第一向量重合的端点确定为重合点的步骤之后,根据重合点的每个关联向量的边界状态,确定符合逻辑运算结果的向量的步骤之前,还包括确定重合点的所有的关联向量; 判断所有关联向量中是否有重合的向量; 若有,将重合的向量记录为同一个向量。5.如权利要求4所述的方法,其特征在于,当逻辑运算为求交集运算时,根据重合点的每个关联向量的边界状态,确定符合逻辑运算结果的向量,包括遍历重合点的各关联向量;对于每一个关联向量,当其属于多边形的边界,并且位于其他多边形的填充区域以内时,确定其为符合逻辑运算结果的向量。6.如权利要求4所述的方法,其特征在于,当逻辑运算为求并集运算时,根据重合点的每个关联向量的边界状态,确定符合逻辑运...

【专利技术属性】
技术研发人员:黄耿琳林好唐宇
申请(专利权)人:北大方正集团有限公司北京北大方正电子有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1