一种基于布尔运算的可封闭无序线段组轮廓求解方法

文档序号:29815507发布日期:2022-04-27 10:07阅读:378来源:国知局
一种基于布尔运算的可封闭无序线段组轮廓求解方法

1.本发明涉及计算机辅助几何设计领域,尤其涉及一种基于布尔运算的可封闭无序线段组轮廓求解方法。


背景技术:

2.求解平面内无序线段组首尾相连多边形轮廓的应用在计算机辅助几何设计中被广泛应用,比如三维打印的切片算法、激光套料中的连接算法等。工业几何算法中最广泛使用的几何模型格式为stl格式,即离散三角面片模型。stl模型是通过使用大量的无规律的空间三角化面片来模拟近似三维实体模型的。因此,在几何计算过程中,模型轮廓往往是由大量无序的微小线段围成。若要得到可用的有向封闭轮廓曲线,则需要相关算法对该可封闭无序线段组进行处理。
3.在现有的文献中,有三种轮廓求解算法。第一种是基于三角面片拓扑信息的算法,先求得与切平面相交的一个目标三角面片的焦点坐标j1、j2,在找到与之链接的下一个三角面片,再次求交,如此反复,最后根据焦点顺序依次连接即可。第二种是基于模型几何特征的算法,通过定义三角面片的“势”和“能量”,分出“级”和“类”。该算法适用的场合有限。第三种是基于模型几何连续性的算法,其核心是利用stl模型的连续性,原理与第一种算法相似,缺点是处理难度较大。
4.综上所示,以上三种切片算法求解难度大,耗时长,随着线段数量的增多,以上算法的时间复杂度接近o(n2)。


技术实现要素:

5.本发明提供了一种基于布尔运算的可封闭无序线段组多边形轮廓求解方法,该方法对平面内一组无序排列的可封闭线段组进行多边形轮廓求解,在保证精度的同时实现更优的全局效率。
6.本发明的目的通过如下的技术方案来实现:
7.一种基于布尔运算的可封闭无序线段组轮廓求解方法,该方法具体包括如下步骤:
8.s1:在平面中输入散乱无序线段组;
9.s2:在每条线段两个端点处作该线段的法向量,且两个法向量方向相反,且与线段在同一平面内;
10.s3:将每条线段沿法向量的两个方向分别平移一个微小的距离δ,以平移后的两条线段作为矩形的长、两倍δ值为矩形的宽构造直线段的特征矩形;
11.s4:对所有线段生成的矩形作布尔并集运算;
12.s5:选取并集的内轮廓或外轮廓作为可封闭无序线段组的轮廓进行填充。
13.进一步地,线段平移距离δ要足够小,且确保相邻的特征矩形之间有交集。
14.进一步地,执行完s4后,选取并集的内轮廓向外偏置δ的偏置轮廓或选取并集的
外轮廓向内偏置δ的偏置轮廓作为可封闭无序线段组的轮廓进行填充。
15.本发明的有益效果如下:
16.与传统无序散乱线段连接算法相比,基于布尔运算的可封闭无序线段组多边形轮廓求解方法通过生成若干个矩形,避免了对线段组排序的复杂计算,就可以得到有向的首尾相连的封闭多边形轮廓。具有以下优点:
17.(1)不需要建立无序散乱线段组的拓扑链接信息;
18.(2)求解速度更快。此方法避免了对线段组的排序,减轻了计算量,有效地提升了切片效率。
19.(3)算法时间复杂度为o(n),而传统通过对线段组的排序的算法时间复杂度为o(n2),复杂度大大降低。
20.(4)本发明的方法可以在三维打印切片后求解切片轮廓,激光套料求解连接路径等实际问题中有重要的应用。
附图说明
21.图1为本发明基于布尔运算的可封闭无序线段组轮廓求解方法流程图;
22.图2为stl模型三维切片过程示意图;其中,左图为stl网格模型,中图为用切割平面与stl模型截交;右图为切片获得的无序线段祖;
23.图3为线段组特征矩形生成原理图;其中,右上图为无序线段组的局部放大图,右中图为作各个线段的法向量;右下图为生产的各个线段的特征矩形;
24.图4为目标线段组特征矩形的布尔并集轮廓;其中,左图为各个线段的特征矩形,中图为特征矩形取并集后的结果,右图为生成目标线段组的内轮廓和外轮廓。
25.图5为线段组的目标多边形连接轮廓;
26.图6为线段组连接多边形在切片后序环节的应用示意图。
具体实施方式
27.下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
28.本发明的实施步骤如如图1所示,包括如下步骤:
29.s1:在平面中输入散乱无序线段组,记作vector《segment》{seg1、seg2、

、segn};
30.散乱无序的线段组是属于同一平面的,且该线段组可首尾相连形成封闭多边形。
31.s2:在每条线段两个端点处作该线段的法向量,且两个法向量方向相反,且与线段在同一平面内;记作{n1,n2,

,nk};
32.s3:将每条线段沿法向量的两个方向分别平移一个微小的距离δ,以平移后的两条线段作为矩形的长、两倍δ值为矩形的宽构造直线段的特征矩形;
33.为了确保所生成的轮廓的精确性,线段平移距离δ要足够小,同时要确保矩形之间有交集。
34.s4:对所有线段生成的矩形作布尔并集运算;
35.s5:选取并集的内轮廓或外轮廓作为可封闭无序线段组的轮廓。
36.由于平移距离δ足够小,因此矩形并集的内外轮廓相差不大,可根据实际情况选
定所需目标轮廓。
37.删除目标轮廓的多余部分,最终得到有向封闭的轮廓线。要保证所得轮廓中不存在多余的点、重复的交线段,且最终生成的封闭轮廓不存在环自交与相交的问题。
38.该实施例以三维打印stl模型的三维切片为具体工程应用场景,当采用平面与stl模型作截交运算,获得一组可封闭无序线段,为生成该层加工区域的填充路径,需将内、外轮廓由线段组转化为多边形,如图2所示。本实施例中基于布尔运算的可封闭无序线段组轮廓求解方法包括如下步骤:
39.(1)平面与stl模型相交后,获得以无序线段组为数据结构的轮廓模型,其数据结构可以表述为:vector《segment》{seg1、seg2、

、segn},其中,相邻的元素segi与seg
i+1
在空间中未必是相邻的线段,若采用暴力遍历算法,找到首尾相连的多边形轮廓空间复杂度为o(n2)。
40.(2)作出各条线段的法向量,记作{n1,n2,

,nk},该法向量要与线段组在同一平面内。切片生成的线段组vector《segment》可逐段生成与线段组共面的法向量,每段线段可生成相反方向的两个法向量,如图3所示。
41.(3)将每条线段沿法向量的两个方向分别平移一个微小的距离δ,以平移后的两条线段作为矩形的长、两倍δ值为矩形的宽构造直线段的特征矩形,线段平移距离δ要足够小以确保所需轮廓的精确性,同时要确保矩形之间有交集,该特征矩形如图3所示。
42.(4)对线段组生成的矩形组作布尔并集运算,获得目标选段特征矩形的内轮廓和外轮廓,如图4所示。
43.(5)选取此并集的内轮廓或外轮廓为目标多边形轮廓,由于平移距离δ足够小,因此矩形并集的内外轮廓相差不大,可根据实际情况选定所需目标轮廓。
44.(6)删除目标轮廓之外的多余部分,要保证最终生成的封闭轮廓中不存在多余的点、重复的交线段,且不存在环自交与相交的问题,最终有向轮廓线如图5所示。当平移距离δ满足精度要求时,多形性外轮廓即可以作为stl模型三维打印的填充区域。填充路径可以是环形偏置路径(如图6所示),也可以是zigzag路径。
45.本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1