一种空间多连通域的封闭面自动搜索方法技术

技术编号:8626537 阅读:276 留言:0更新日期:2013-04-25 23:52
本发明专利技术涉及一种空间多连通域的封闭面自动搜索方法,包括以下步骤:获取线段集和控制精度,判断所选线段是否处于同一空间平面,若是,则提取基准平面:对所有线段求交并在交点处打断;将所有端点映射到基准平面内;建立各线段与端点位置索引值的映射关系;运用单点围绕法逐个搜寻出每个端点的最小封闭区域,并将该封闭区域的外边线组成一个Wire将同一单连通域内的Wire组成一个WireGroup,直至所有的Wire?Group建立;计算出各Wire?Group的线框包围盒,建立各Wire?Group之间的拓扑关系,利用Wire?Group创建封闭面。与现有技术相比,本发明专利技术具有可实现、快速、有效、完全自动化等优点。

【技术实现步骤摘要】

本专利技术涉及一种封闭面搜索方法,尤其是涉及一种空间多连通域的封闭面自动搜 索方法。
技术介绍
自动寻找封闭面不仅是解决某些几何问题所需要的预处理步骤,而且在有限元网 格划分、三维快速建模、模式识别、地质学等领域得到广泛应用。封闭面是指其内不再包含 其它线段,有有无内边界之分。复平面上的一个区域B,如果在其中任作一条简单闭曲线,而 曲线的内部总属于B,则此复平面为单连通域,否则就为多连通域。2010年,西北工业大学的雷安民、张华梅等人提出了一种寻找平面图形中最小封 闭线框的方法,但仅限于直线段和单连通域(《科学技术与工程》2010年04期);2012年, 中国科学院微电子研究所艾迪、周云燕提出一种二维图形封闭区域自动识别算法,采用以 广度优先遍历搜索算法为基础的单源搜索法识别图形所有封闭区域(《电子设计工程》2012 年第07期)。然而,以上所研究的方法主要是针对于二维平面或单连通域内的封闭面寻找方 法,且线性多为直线。而实际中,模型的区域常为空间、多连通域,线性有直线、圆、圆弧、椭 圆、椭圆弧、样条曲线等构成,为了更加贴近实际工程三维建模,需寻找一种新的搜寻方法 替代已有方法。因此,研究一种能在空间多连通域内自动寻找封闭面的方法已成为三维空间快速 建模的迫切需要之一。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种可实现、快速、 有效、完全自动化的空间多连通域的封闭面自动搜索方法,可在实际工程应用中使预处理 步骤更加简洁,并具有更高的精度。本专利技术的目的可以通过以下技术方案来实现,包括以下步骤(I)获取线段集和控制精度,判断所选线段是否处于同一空间平面,若是,则提取 基准平面,若否,则退出(2)对所有线段求交并在交点处打断;(3)将所有端点映射到基准平面内,并建立端点与线段之间的引用关系,剔除无效 端点及引用该端点的线段;(4)将所有端点按X、Y坐标值从小到大排序,并建立各线段与端点位置索引值的 映射关系;(5)运用单点围绕法逐个搜寻出每个端点的最小封闭区域,并将该封闭区域的外 边线组成一个Wire ;(6)每搜寻完一个端点所有的Wire后,将已遍历过且线段引用数少于2的端点移除;(7)重复步骤(5)、步骤¢),直至找到所有单连通域的线框,将同一单连通域内的 Wire 组成一个 Wire Group ;(8)继续遍历,直至所有的Wire Group建立;(9)计算出各Wire Group的线框包围盒,依据线框包围盒的面积从大到小排序, 并建立各Wire Group之间的拓扑关系;(10)利用Wire Group创建封闭面。所述的步骤(1)的具体步骤如下(11)获取线段集,计算各线段的局部坐标系,并存储到局部坐标系容器中,线段集中,每个线段设有一个对应的ID ;获取线段集时,如果存在矩形,则首先将矩形在角点处打断,分成四段直线,将矩形删除,并将新生成的直线加入所选线段集中;同理,将圆和椭圆对象在0°、90°、180°、 270°处打断;(12)通过两直线切向向量的向量积,产生一个新的局部坐标系,并加入到步骤(11)的容器中;(13)遍历容器,判断各局部坐标系是否在同一平面内,若是,则所有的线段共面, 继续执行步骤(14),若否,则退出,重新获取线段;(14)将整体坐标系的Z方向转换成上述容器中任意局部坐标系的Z方向,并将转换后的整体坐标系作为基准平面。所述的步骤(2)的具体步骤如下(21)将所有线段逐个与其它线段求交,并记录相应交点在线段上的U参数;(22)依据所记录的U参数将线段逐个分解,删除原有线段,将新线段加入线段集中;(23)判断各线段是否存在重复,如果存在,则删除重复的线段。所述的步骤(3)的具体步骤如下(31)遍历所有线段的端点,通过坐标系转换将端点一一映射到基准平面内,将所有空间的端点转化成平面点集,且在映射过程中,记录各端点的线段引用数;(32)遍历所有端点的线段引用数,判断第i个端点的线段引用数Ni的值是否大于 1,若是,则继续判断第i+Ι个端点的线段引用数,若否,则执行步骤(33);(33)将第i个端点与其它端点逐个求距离Lij,判断是否存在minILijJ = 1,…,1-1, i+Ι,…,η}小于设定的拟合误差,若是,则自动将第i个端点及与其距离最小的端点进行拟合,若否,则反馈错误信息,将第i个端点及引用该端点的线段删除。所述的步骤(4)的具体步骤如下(41)将所有端点按X、Y坐标值从小到大排序,组成端点集;(42)构建新的拓扑线段,每一拓扑线段记录了相对应线段的ID和端点对应的位置索引值。所述的步骤(5)的具体步骤如下(51)提取端点集的首端点作为搜寻的起始端点Ptl,计算点Ptl所引用的各线段在点Po处的切线方向向量,如果点Po不是线段的起始点,则须将向量W0反向,求各向量1%与基准平面X轴正向的夹角θ (Θ的值域为[-90°,90° ]),取夹角(注非角度绝对值)Θ最小的那根线段作为搜寻起始线段;(52)提取线段Itl非Ptl的另一个端点P1作为下一个搜寻端点,如果端点P1的线段引用数为2,则直接将引用P1的下一条线段I1作为搜寻线段,并将搜寻端点移动至线段I1 的非P1端点;如果端点P1的线段引用数大于2,则计算线段Itl上点P1处的切线方向向量;, 如果点P1是线段的终点,则须将向量;反向,计算引用端点P1的除线段Itl外的所有线段与向量;的夹角β (β值域为[-180° ,180° ]),取角度β (注非角度绝对值)最小的那一根线段作为下一个搜寻线段Ii ;(53)重复步骤(52),直至下一个搜寻端点回到了初始端点Ptl,至此一个最小的封闭框搜寻完毕。将此封闭框所路径的端点和线段信息记录到Wire中;(54)取除线段Itl外的夹角最小的那一线段作为搜寻的起始线段,重复步骤(52)、(53),直至所有线段遍历完毕;(55)当通过起始端点Ptl所搜寻的Wire个数Nw大于或等于该端点的线段引用数时,说明经过端点Ptl的所有最小边框均已找到。所述的步骤(6)的具体步骤如下(61)由于途径端点Ptl的所有最小边框均已找到,则端点?(1可以移除,相应地端点 Po所引用的线段亦可以移除,在移除各线段时,亦要从其被引用的其它端点中移除;(62)通过递归遍历端点P。所引用线段的另一端点Pi,逐个移除线段引用数少于2 的所有端点;(63)通过步骤(62),如果步骤(5)所搜索到Wire中所有的端点均被移除,则说明一个单连通域的线框全部找到,将这些Wire组成一个Wire Group,并提取未被删除端点集中的首端点作为搜寻起始点Ptl ;如果步骤(5)所搜索到Wire中所有的端点还有线段引用数大于或等于2的,则将其中索引值最 小的端点作为搜寻起始点P(1。所述的步骤(9)的具体步骤如下(91)遍历所有的Wire Group,逐个构建其线框包围盒,方法为提取出WireGroup 中所有的端点,计算这些点的Χ、γ坐标的最大值和最小值,利用Χ、γ坐标的最小值和最大值分别组成矩形的两个角点,则Wire Group的线框包围盒构建完毕;(92)计算此线框包围盒的面积,并记录此线框包围盒所对应Wire Group的索引值;(93)将所有的线框包围盒依据面积从大到小进行本文档来自技高网...

【技术保护点】
一种空间多连通域的封闭面自动搜索方法,其特征在于,包括以下步骤;(1)获取线段集和控制精度,判断所选线段是否处于同一空间平面,若是,则提取基准平面,执行步骤(2),若否,则退出;(2)对所有线段求交并在交点处打断;(3)将所有端点映射到基准平面内,并建立端点与线段之间的引用关系,剔除无效端点及引用该端点的线段;(4)将所有端点按X、Y坐标值从小到大排序,并建立各线段与端点位置索引值的映射关系;(5)运用单点围绕法逐个搜寻出每个端点的最小封闭区域,并将该封闭区域的外边线组成一个Wire;(6)每搜寻完一个端点所有的Wire后,将已遍历过且线段引用数少于2的端点移除;(7)重复步骤(5)、步骤(6),直至找到所有单连通域的线框,将同一单连通域内的Wire组成一个Wire?Group;(8)继续遍历,直至所有的Wire?Group建立;(9)计算出各Wire?Group的线框包围盒,依据线框包围盒的面积从大到小排序,并建立各Wire?Group之间的拓扑关系;(10)利用Wire?Group创建封闭面。

【技术特征摘要】
1.一种空间多连通域的封闭面自动搜索方法,其特征在于,包括以下步骤;(1)获取线段集和控制精度,判断所选线段是否处于同一空间平面,若是,则提取基准平面,执行步骤(2),若否,则退出;(2)对所有线段求交并在交点处打断;(3)将所有端点映射到基准平面内,并建立端点与线段之间的引用关系,剔除无效端点及引用该端点的线段;(4)将所有端点按X、Y坐标值从小到大排序,并建立各线段与端点位置索引值的映射关系;(5)运用单点围绕法逐个搜寻出每个端点的最小封闭区域,并将该封闭区域的外边线组成一个Wire ;(6)每搜寻完一个端点所有的Wire后,将已遍历过且线段引用数少于2的端点移除;(7)重复步骤(5)、步骤¢),直至找到所有单连通域的线框,将同一单连通域内的Wire 组成一个 Wire Group ;(8)继续遍历,直至所有的WireGroup建立;(9)计算出各WireGroup的线框包围盒,依据线框包围盒的面积从大到小排序,并建立各Wire Group之间的拓扑关系;(10)利用WireGroup创建封闭面。2.根据权利要求1所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(I)的具体步骤如下(11)获取线段集,计算各线段的局部坐标系,并存储到局部坐标系容器中,线段集中, 每个线段设有一个对应的ID ;获取线段集时,如果存在矩形,则首先将矩形在角点处打断,分成四段直线,将矩形删除,并将新生成的直线加入所选线段集中;同理,将圆和椭圆对象在0°、90°、180°、 270°处打断;(12)通过两直线切向向量的向量积,产生一个新的局部坐标系,并加入到步骤(11)的容器中;(13)遍历容器,判断各局部坐标系是否在同一平面内,若是,则所有的线段共面,继续执行步骤(14),若否,则退出,重新获取线段;(14)将整体坐标系的Z方向转换成上述容器中任意局部坐标系的Z方向,并将转换后的整体坐标系作为基准平面。3.根据权利要求1所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(2)的具体步骤如下(21)将所有线段逐个与其它线段求交,并记录相应交点在线段上的U参数;(22)依据所记录的U参数将线段逐个分解,删除原有线段,将新线段加入线段集中;(23)判断各线段是否存在重复,如果存在,则删除重复的线段。4.根据权利要求2所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(3)的具体步骤如下(31)遍历所有线段的端点,通过坐标系转换将端点一一映射到基准平面内,将所有空间的端点转化成平面点集,且在映射过程中,记录各端点的线段引用数;(32)遍历所有端点的线段引用数,判断第i个端点的线段引用数Ni的值是否大于1, 若是,则继续判断第i+Ι个端点的线段引用数,若否,则执行步骤(33);(33)将第i个端点与其它端点逐个求距离Lij,判断是否存在minILij, j = I, ···,1-1, i+1,…,η}小于设定的拟合误差,若是,则自动将第i个端点及与其距离最小的端点进行拟合,若否,则反馈错误信息,将第i个端点及引用该端点的线段删除。5.根据权利要求1所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(4)的具体步骤如下(41)将所有端点按X、Y坐标值从小到大排序,组成端点集;(42)构建新的拓扑线段,每一拓扑线段记录了相对应线段的ID和端点对应的位置索引值。6.根据权利要求5所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(5)的具体步骤如下(51)提取端点集的首端点作为搜寻的起始端点Pd,计算点PtI所引用的各线段在点Pd 处的切线方向向量《O,如果点Pci不是线段的起始点,则将向量《O反向,求各向量Wo与基准平面X轴正向的夹角θ,Θ的值域为[-90°,90° ],取夹角Θ最小的那根线段作为搜寻起始线段Itl ;(52)提取线段Itl非Ptl的另一个端点P1作为下一个搜寻端点,如果端点P1的线段引用数为2...

【专利技术属性】
技术研发人员:朱合华刘新根刘学增林小平周德成齐磊彭丹张杰
申请(专利权)人:上海同岩土木工程科技有限公司同济大学
类型:发明
国别省市:

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

1