CN103065319A - 一种空间多连通域的封闭面自动搜索方法 - Google Patents

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

Info

Publication number
CN103065319A
CN103065319A CN2012105925669A CN201210592566A CN103065319A CN 103065319 A CN103065319 A CN 103065319A CN 2012105925669 A CN2012105925669 A CN 2012105925669A CN 201210592566 A CN201210592566 A CN 201210592566A CN 103065319 A CN103065319 A CN 103065319A
Authority
CN
China
Prior art keywords
line segment
end points
wire
line
connected domain
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.)
Granted
Application number
CN2012105925669A
Other languages
English (en)
Other versions
CN103065319B (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.)
Shanghai same rock civil engineering Polytron Technologies Inc
Original Assignee
Shanghai Tongyan Civil Engineering Technology Co Ltd
Tongji University
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 Tongyan Civil Engineering Technology Co Ltd, Tongji University filed Critical Shanghai Tongyan Civil Engineering Technology Co Ltd
Priority to CN201210592566.9A priority Critical patent/CN103065319B/zh
Publication of CN103065319A publication Critical patent/CN103065319A/zh
Application granted granted Critical
Publication of CN103065319B publication Critical patent/CN103065319B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

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

Description

一种空间多连通域的封闭面自动搜索方法
技术领域
本发明涉及一种封闭面搜索方法,尤其是涉及一种空间多连通域的封闭面自动搜索方法。
背景技术
自动寻找封闭面不仅是解决某些几何问题所需要的预处理步骤,而且在有限元网格划分、三维快速建模、模式识别、地质学等领域得到广泛应用。封闭面是指其内不再包含其它线段,有有无内边界之分。复平面上的一个区域B,如果在其中任作一条简单闭曲线,而曲线的内部总属于B,则此复平面为单连通域,否则就为多连通域。
2010年,西北工业大学的雷安民、张华梅等人提出了一种寻找平面图形中最小封闭线框的方法,但仅限于直线段和单连通域(《科学技术与工程》2010年04期);2012年,中国科学院微电子研究所艾迪、周云燕提出一种二维图形封闭区域自动识别算法,采用以广度优先遍历搜索算法为基础的单源搜索法识别图形所有封闭区域(《电子设计工程》2012年第07期)。
然而,以上所研究的方法主要是针对于二维平面或单连通域内的封闭面寻找方法,且线性多为直线。而实际中,模型的区域常为空间、多连通域,线性有直线、圆、圆弧、椭圆、椭圆弧、样条曲线等构成,为了更加贴近实际工程三维建模,需寻找一种新的搜寻方法替代已有方法。
因此,研究一种能在空间多连通域内自动寻找封闭面的方法已成为三维空间快速建模的迫切需要之一。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种可实现、快速、有效、完全自动化的空间多连通域的封闭面自动搜索方法,可在实际工程应用中使预处理步骤更加简洁,并具有更高的精度。
本发明的目的可以通过以下技术方案来实现:
一种空间多连通域的封闭面自动搜索方法,包括以下步骤:
(1)获取线段集和控制精度,判断所选线段是否处于同一空间平面,若是,则提取基准平面,若否,则退出:
(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)的具体步骤如下:
(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+1个端点的线段引用数,若否,则执行步骤(33);
(33)将第i个端点与其它端点逐个求距离Lij,判断是否存在min{Lij,j=1,…,i-1,i+1,…,n}小于设定的拟合误差,若是,则自动将第i个端点及与其距离最小的端点进行拟合,若否,则反馈错误信息,将第i个端点及引用该端点的线段删除。
所述的步骤(4)的具体步骤如下:
(41)将所有端点按X、Y坐标值从小到大排序,组成端点集;
(42)构建新的拓扑线段,每一拓扑线段记录了相对应线段的ID和端点对应的位置索引值。
所述的步骤(5)的具体步骤如下:
(51)提取端点集的首端点作为搜寻的起始端点p0,计算点p0所引用的各线段在点p0处的切线方向向量
Figure BDA00002690755300031
如果点p0不是线段的起始点,则须将向量
Figure BDA00002690755300032
反向,求各向量
Figure BDA00002690755300033
与基准平面X轴正向的夹角θ(θ的值域为[-90°,90°]),取夹角(注:非角度绝对值)θ最小的那根线段作为搜寻起始线段;
(52)提取线段l0非p0的另一个端点p1作为下一个搜寻端点,如果端点p1的线段引用数为2,则直接将引用p1的下一条线段l1作为搜寻线段,并将搜寻端点移动至线段l1的非p1端点;如果端点p1的线段引用数大于2,则计算线段l0上点p1处的切线方向向量如果点p1是线段的终点,则须将向量
Figure BDA00002690755300035
反向,计算引用端点p1的除线段l0外的所有线段与向量
Figure BDA00002690755300036
的夹角β(β值域为[-180°,180°]),取角度β(注:非角度绝对值)最小的那一根线段作为下一个搜寻线段li
(53)重复步骤(52),直至下一个搜寻端点回到了初始端点p0,至此一个最小的封闭框搜寻完毕。将此封闭框所路径的端点和线段信息记录到Wire中;
(54)取除线段l0外的夹角最小的那一线段作为搜寻的起始线段,重复步骤(52)、(53),直至所有线段遍历完毕;
(55)当通过起始端点p0所搜寻的Wire个数Nw大于或等于该端点的线段引用数时,说明经过端点p0的所有最小边框均已找到。
所述的步骤(6)的具体步骤如下:
(61)由于途径端点p0的所有最小边框均已找到,则端点p0可以移除,相应地端点p0所引用的线段亦可以移除,在移除各线段时,亦要从其被引用的其它端点中移除;
(62)通过递归遍历端点p0所引用线段的另一端点pi,逐个移除线段引用数少于2的所有端点;
(63)通过步骤(62),如果步骤(5)所搜索到Wire中所有的端点均被移除,则说明一个单连通域的线框全部找到,将这些Wire组成一个Wire Group,并提取未被删除端点集中的首端点作为搜寻起始点p0;如果步骤(5)所搜索到Wire中所有的端点还有线段引用数大于或等于2的,则将其中索引值最小的端点作为搜寻起始点p0
所述的步骤(9)的具体步骤如下:
(91)遍历所有的Wire Group,逐个构建其线框包围盒,方法为:提取出WireGroup中所有的端点,计算这些点的X、Y坐标的最大值和最小值,利用X、Y坐标的最小值和最大值分别组成矩形的两个角点,则Wire Group的线框包围盒构建完毕;
(92)计算此线框包围盒的面积,并记录此线框包围盒所对应Wire Group的索引值;
(93)将所有的线框包围盒依据面积从大到小进行排序;
(94)提取面积最大的线框包围盒Bmax,判断Bmax与其它的线框包围盒Bi的拓扑关系;
(95)剔除线框包围盒层层包含的情况,以确保各线框包围盒是按从大到小依次成包含关系;
(96)至此,各Wire Group之间的拓扑关系建立完毕。
所述的Bmax与Bi的拓扑关系判断方法如下:
(941)如果二者的线框包围盒分离,则说明Bmax与Bi分离,相互之间没有包含关系,直接跳过,继续遍历下一个Wire Group对象;
(942)如果二者线框包围盒不分离,则须进一步判断Bmax与Bi之间的关系:首先取Bi内任意一点p,然后将Bmax放大1.5倍,并将Bmax围绕着矩形形心旋转45°;从点p出发向Bmax的任意一角点构造一条射线,记为Ri,通过坐标转换将Ri转换为三维空间的射线RT,逐个计算RT穿越Bmax的交点,如果交点中正好有Bmax边线的端点或切点,则更换Bmax的角点,重新引出一条射线RT,继续计算RT穿越Bmax的交点;如果交点数目为奇数,则说明Bmax包含Bi,否则不包含。
所述的步骤(10)的具体步骤如下:
(101)如果Wire Group没有包含对象,则为单连通域,遍历其内部所有的Wire直接创建封闭面对象;
(102)如果Wire Group有包含对象,则为多连通域,提取其包含子对象的外边界作为Wire Group的内边界,创建封闭面对象;
提取Wire Group的外边界方法为:剔除Wire Group中线段引用数等于2的线段后所剩线段即为Wire Group的外边界。
与现有技术相比,本发明具有以下优点:
1)本发明解决了空间多连通域寻找封闭面的问题,技术方案完整且易于实现,全自动化寻找,无须用户干预;
2)由于对端点一次遍历即可搜寻出所有的Wire,其计算效率显著提高,时间复杂度是0(n);
3)在搜寻过程中,将许多几何方法描述转化为几何拓扑关系描述,从而避免由于计算精度而引起错误判断;
4)本发明经过大量不同封闭区域验证,其正确率100%;
5)本发明提高了三维几何建模等几何问题的效率和精度,并可在实际工程应用中取得令人满意的效果。
附图说明
图1为本发明方法的流程示意图;
图2为本发明单点围绕法的示意图;
图3为本发明判断Wire Group拓扑关系的示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
如图1所示,一种空间多连通域的封闭面自动搜索方法,包括以下步骤:
(1)获取线段集和控制精度,判断所选线段是否处于同一空间平面,若是,则提取基准平面,若否,则退出,具体为:
(11)获取线段集,计算各线段(除直线外)的局部坐标系,并存储到局部坐标系容器中,线段集中,每个线段设有一个对应的ID;
获取线段集时,如果存在矩形,则首先将矩形在角点处打断,分成四段直线,将矩形删除,并将新生成的直线加入所选线段集中;同理,将圆和椭圆对象在0°、90°、180°、270°处打断;
(12)通过两直线切向向量的向量积,产生一个新的局部坐标系,并加入到步骤(11)的容器中;
(13)遍历容器,判断各局部坐标系是否在同一平面内,若是,则所有的线段共面,继续执行步骤(14),若否,则不能生成封闭面,退出,重新获取线段;
(14)将整体坐标系的Z方向转换成上述容器中任意局部坐标系的Z方向,并将转换后的整体坐标系作为基准平面。
(2)将所有线段逐个与其它线段求交,并记录相应交点在线段上的U参数(如果交点为线的端点则不用记录),依据所记录的U参数将线段逐个分解,删除原有线段,将新线段加入线段集中,判断各线段是否存在重复,如果存在,则删除重复的线段。
U参数是曲线函数的一个变量,在解析几何里,曲线常用参数表示,例如一个三维坐标点可以写成参数U的函数:X=X(U)、Y=Y(U)、Z=Z(U)。对于直线,U表示长度;对于圆弧、圆,U则表示角度。
(3)将所有端点映射到基准平面内,并建立端点与线段之间的引用关系,剔除无效端点及引用该端点的线段,具体为:
(31)遍历所有线段的端点,通过坐标系转换将端点一一映射到基准平面内,将所有空间的端点转化成平面点集,且在映射过程中,记录各端点的线段引用数;
(32)遍历所有端点的线段引用数,判断第i个端点的线段引用数Ni的值是否大于1,若是,则继续判断第i+1个端点的线段引用数,若否,则执行步骤(33);
(33)将第i个端点与其它端点逐个求距离Lij,判断是否存在min{Lij=1,…,i-1,i+1,…,n}小于设定的拟合误差,若是,则自动将第i个端点及与其距离最小的端点进行拟合,若否,则反馈错误信息,将第i个端点及引用该端点的线段删除。
(4)将所有端点按X、Y坐标值从小到大排序,并建立各线段与端点位置索引值的映射关系,构建新的拓扑线段TPLine,每一拓扑线段记录了相对应线段的ID和端点对应的位置索引值,TPLine数据结构为:
Figure BDA00002690755300071
(5)运用单点围绕法逐个搜寻出每个端点的最小封闭区域,并将该封闭区域的外边线组成一个Wire(线框),具体为:
(51)提取端点集的首端点作为搜寻的起始端点p0,计算点p0所引用的各线段在点p0处的切线方向向量
Figure BDA00002690755300072
如果点p0不是线段的起始点,则须将向量
Figure BDA00002690755300073
反向,求各向量
Figure BDA00002690755300074
与基准平面X轴正向的夹角θ(θ的值域为[-90°,90°]),取夹角θ(注:非角度绝对值)最小的那根线段作为搜寻起始线段l0
(52)如图2所示,提取线段l0非p0的另一个端点p1作为下一个搜寻端点,如果端点p1的线段引用数为2,则直接将引用p1的下一条线段l1作为搜寻线段,并将搜寻端点移动至线段l1的非p1端点;如果端点p1的线段引用数大于2,则计算线段l0上点p1处的切线方向向量
Figure BDA00002690755300075
如果点p1是线段的终点,则须将向量
Figure BDA00002690755300076
反向,计算引用端点p1的除线段l0外的所有线段与向量
Figure BDA00002690755300077
的夹角β(β的值域为[-180°,180°]),取角度β(注:非角度绝对值)最小的那一根线段作为下一个搜寻线段li
(53)重复步骤(52),直至下一个搜寻端点回到了初始端点p0,至此一个最小的封闭框搜寻完毕。将此封闭框所路径的端点和线段信息记录到Wire中;
Wire数据结构:
Figure BDA00002690755300081
(54)取除线段l0外的夹角最小的那一线段作为搜寻的起始线段,重复步骤(52)、(53),直至所有线段遍历完毕;
(55)当通过起始端点p0所搜寻的Wire个数Nw大于或等于该端点的线段引用数时,说明经过端点p0的所有最小边框均已找到。
(6)每搜寻完一个端点所有的Wire后,将已遍历过且线段引用数少于2的端点移除:
(61)由于途径端点p0的所有最小边框均已找到,则端点p0可以移除,相应地端点p0所引用的线段亦可以移除,在移除各线段时,亦要从其被引用的其它端点中移除;
(62)通过递归遍历端点p0所引用线段的另一端点pi,逐个移除线段引用数少于2的所有端点;
(63)通过步骤(62),如果步骤(5)所搜索到Wire中所有的端点均被移除,则说明一个单连通域的线框全部找到,将这些Wire组成一个Wire Group(线框组),并提取未被删除端点集中的首端点作为搜寻起始点p0;如果步骤(5)所搜索到Wire中所有的端点还有线段引用数大于或等于2的,则将其中索引值最小的端点作为搜寻起始点p0
(7)重复步骤(5)、步骤(6),直至找到所有单连通域的线框,将同一单连通域内的Wire组成一个Wire Group;
(8)继续遍历,直至所有的Wire Group建立;
(9)计算出各Wire Group的线框包围盒,依据线框包围盒的面积从大到小排序,并建立各Wire Group之间的拓扑关系,具体为:
(91)如图3所示,遍历所有的Wire Group,逐个构建其线框包围盒(Wire Box),方法为:提取出Wire Group中所有的端点,计算这些点的X、Y坐标的最大值和最小值,利用X、Y坐标的最小值和最大值分别组成矩形的两个角点,则Wire Group的线框包围盒构建完毕;
Wire Box数据结构:
Figure BDA00002690755300091
(92)计算此线框包围盒的面积,并记录此线框包围盒所对应Wire Group的索引值:
(93)将所有的线框包围盒依据面积从大到小进行排序;
(94)提取面积最大的线框包围盒Bmax,判断Bmax与其它的线框包围盒Bi的拓扑关系;
(95)剔除线框包围盒层层包含的情况,以确保各线框包围盒是按从大到小依次成包含关系;
(96)至此,各Wire Group之间的拓扑关系建立完毕。
所述的Bmax与Bi的拓扑关系判断方法如下:
(941)如果二者线框包围盒分离,则说明Bmax与Bi分离,相互之间没有包含关系,直接跳过,继续遍历下一个Wire Group对象;
(942)如果二者线框包围盒不分离,则须进一步判断Bmax与Bi之间的关系:首先取Bi内任意一点p,然后将Bmax放大1.5倍,并将Bmax围绕着矩形形心旋转45°;从点p出发向Bmax的任意一角点构造一条射线,记为Ri,通过坐标转换将Ri转换为三维空间的射线RT,逐个计算RT穿越包围盒Bmax的交点,如果交点中正好有Bmax边线的端点或切点,则更换Bmax的角点,重新引出一条射线RT,继续计算RT穿越包围盒Bmax的交点;如果交点数目为奇数,则说明Bmax包含Bi,否则不包含。
(10)利用Wire Group创建封闭面:
(101)如果Wire Group没有包含对象,则为单连通域,遍历其内部所有的Wire直接创建封闭面对象;
(102)如果Wire Group有包含对象,则为多连通域,提取其包含子对象的外边界作为Wire Group的内边界,创建封闭面对象;
提取Wire Group的外边界方法为:剔除Wire Group中线段引用数等于2的线段后所剩线段即为Wire Group的外边界。

Claims (10)

1.一种空间多连通域的封闭面自动搜索方法,其特征在于,包括以下步骤;
(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创建封闭面。
2.根据权利要求1所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(1)的具体步骤如下:
(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+1个端点的线段引用数,若否,则执行步骤(33);
(33)将第i个端点与其它端点逐个求距离Lij,判断是否存在min{Lij,j=1,…,i-1,i+1,…,n}小于设定的拟合误差,若是,则自动将第i个端点及与其距离最小的端点进行拟合,若否,则反馈错误信息,将第i个端点及引用该端点的线段删除。
5.根据权利要求1所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(4)的具体步骤如下:
(41)将所有端点按X、Y坐标值从小到大排序,组成端点集;
(42)构建新的拓扑线段,每一拓扑线段记录了相对应线段的ID和端点对应的位置索引值。
6.根据权利要求5所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(5)的具体步骤如下:
(51)提取端点集的首端点作为搜寻的起始端点p0,计算点p0所引用的各线段在点p0处的切线方向向量
Figure FDA00002690755200021
如果点p0不是线段的起始点,则将向量
Figure FDA00002690755200022
反向,求各向量
Figure FDA00002690755200023
与基准平面X轴正向的夹角θ,θ的值域为[-90°,90°],取夹角θ最小的那根线段作为搜寻起始线段l0
(52)提取线段l0非p0的另一个端点p1作为下一个搜寻端点,如果端点p1的线段引用数为2,则直接将引用p1的下一条线段l1作为搜寻线段,并将搜寻端点移动至线段l1的非p1端点;如果端点p1的线段引用数大于2,则计算线段l0上点p1处的切线方向向量
Figure FDA00002690755200031
如果点p1是线段的终点,则须将向量反向,计算引用端点p1的除线段l0外的所有线段与向量
Figure FDA00002690755200033
的夹角β,β的值域为[-180°,180°],取角度β最小的那一根线段作为下一个搜寻线段li
(53)重复步骤(52),直至下一个搜寻端点回到了初始端点p0,至此一个最小的封闭框搜寻完毕,将此封闭框所路径的端点和线段信息记录到Wire中;
(54)取除线段l0外的夹角最小的那一线段作为搜寻的起始线段,重复步骤(52)、(53),直至所有线段遍历完毕;
(55)当通过起始端点p0所搜寻的Wire个数Nw大于或等于该端点的线段引用数时,说明经过端点p0的所有最小边框均已找到。
7.根据权利要求6所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(6)的具体步骤如下:
(61)由于途径端点p0的所有最小边框均已找到,则端点p0可以移除,相应地端点p0所引用的线段亦可以移除,在移除各线段时,亦要从其被引用的其它端点中移除;
(62)通过递归遍历端点p0所引用线段的另一端点pi,逐个移除线段引用数少于2的所有端点;
(63)通过步骤(62),如果所搜索到Wire中所有的端点均被移除,则说明一个单连通域的线框全部找到,将这些Wire组成一个Wire Group,并提取未被删除端点集中的首端点作为搜寻起始点p0;如果所搜索到Wire中所有的端点还有线段引用数大于或等于2的,则将其中索引值最小的端点作为搜寻起始点p0
8.根据权利要求7所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(9)的具体步骤如下:
(91)遍历所有的Wire Group,逐个构建其线框包围盒,方法为:提取出WireGroup中所有的端点,计算这些点的X、Y坐标的最大值和最小值,利用X、Y坐标的最小值和最大值分别组成矩形的两个角点,则Wire Group的线框包围盒构建完毕;
(92)计算此线框包围盒的面积,并记录此线框包围盒所对应Wire Group的索引值;
(93)将所有的线框包围盒依据面积从大到小进行排序;
(94)提取面积最大的线框包围盒Bmax,判断Bmax与其它的线框包围盒Bi的拓扑关系;
(95)剔除线框包围盒层层包含的情况,以确保各线框包围盒是按从大到小依次成包含关系;
(96)至此,各Wire Group之间的拓扑关系建立完毕。
9.根据权利要求8所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的Bmax与Bi的拓扑关系判断方法如下:
(941)如果二者的线框包围盒分离,则说明Bmax与Bi分离,相互之间没有包含关系,直接跳过,继续遍历下一个Wire Group对象;
(942)如果二者线框包围盒不分离,则须进一步判断Bmax与Bi之间的关系:首先取Bi内任意一点p,然后将Bmax放大1.5倍,并将Bmax围绕着矩形形心旋转45°;从点p出发向Bmax的任意一角点构造一条射线,记为Ri,通过坐标转换将Ri转换为三维空间的射线RT,逐个计算RT穿越Bmax的交点,如果交点中正好有Bmax边线的端点或切点,则更换Bmax的角点,重新引出一条射线RT,继续计算RT穿越Bmax的交点;如果交点数目为奇数,则说明Bmax包含Bi,否则不包含。
10.根据权利要求8所述的一种空间多连通域自动寻找封闭面的方法,其特征在于,所述的步骤(10)的具体步骤如下:
(101)如果Wire Group没有包含对象,则为单连通域,遍历其内部所有的Wire直接创建封闭面对象;
(102)如果Wire Group有包含对象,则为多连通域,提取其包含子对象的外边界作为Wire Group的内边界,创建封闭面对象;
提取Wire Group的外边界方法为:剔除Wire Group中线段引用数等于2的线段后所剩线段即为Wire Group的外边界。
CN201210592566.9A 2012-12-31 2012-12-31 一种空间多连通域的封闭面自动搜索方法 Active CN103065319B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210592566.9A CN103065319B (zh) 2012-12-31 2012-12-31 一种空间多连通域的封闭面自动搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210592566.9A CN103065319B (zh) 2012-12-31 2012-12-31 一种空间多连通域的封闭面自动搜索方法

Publications (2)

Publication Number Publication Date
CN103065319A true CN103065319A (zh) 2013-04-24
CN103065319B CN103065319B (zh) 2015-03-04

Family

ID=48107936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210592566.9A Active CN103065319B (zh) 2012-12-31 2012-12-31 一种空间多连通域的封闭面自动搜索方法

Country Status (1)

Country Link
CN (1) CN103065319B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123738A (zh) * 2014-08-06 2014-10-29 铁道第三勘察设计院集团有限公司 一种二维图形中包围给定点的最小封闭区域发现方法
CN106909650A (zh) * 2017-02-23 2017-06-30 和创(北京)科技股份有限公司 位置提示方法和数据处理装置
CN107085865A (zh) * 2017-05-12 2017-08-22 杭州电子科技大学 应用于有限元分析的四边形分割方法
CN108711170A (zh) * 2018-05-21 2018-10-26 武汉山骁科技有限公司 一种基于拓扑不变性的圈地算法
CN111251335A (zh) * 2020-03-24 2020-06-09 桂林电子科技大学 基于包围盒算法的高精度机械臂碰撞检测方法
CN113808238A (zh) * 2021-09-24 2021-12-17 北京有竹居网络技术有限公司 动画的渲染方法、装置、可读介质和电子设备
CN115619893A (zh) * 2022-07-26 2023-01-17 中国长江三峡集团有限公司 基于矩阵表达式的二维块体切割与搜索方法
CN115619961A (zh) * 2022-07-26 2023-01-17 中国长江三峡集团有限公司 基于矩阵表达式的三维块体切割与搜索方法
CN116757025A (zh) * 2023-06-07 2023-09-15 中国船级社上海规范研究所 一种基于dxf格式的船舶舱室图形自动拾取方法
CN115619893B (zh) * 2022-07-26 2024-07-05 中国长江三峡集团有限公司 基于矩阵表达式的二维块体切割与搜索方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076465A (ja) * 1998-08-27 2000-03-14 Canon Inc 画像処理装置及びその方法
JP2000222605A (ja) * 1999-02-01 2000-08-11 Matsushita Electronics Industry Corp 有限要素生成装置および有限要素生成方法
CN1629849A (zh) * 2003-12-19 2005-06-22 大日本网目版制造株式会社 图形处理装置、图形处理方法和计算机可读程序
JP2008059329A (ja) * 2006-08-31 2008-03-13 Canon Inc 閉ループ自動認識装置及び閉ループ自動認識方法
CN101527032A (zh) * 2009-04-03 2009-09-09 昆山市工业技术研究院有限责任公司 平面任意多边形间相互变形方法
CN101604452A (zh) * 2008-06-13 2009-12-16 北京大学 利用开放曲线和临近的闭合曲线构建新的闭合曲线的方法
CN102629375A (zh) * 2012-01-06 2012-08-08 中国科学院软件研究所 一种判定点是否位于多边形内的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076465A (ja) * 1998-08-27 2000-03-14 Canon Inc 画像処理装置及びその方法
JP2000222605A (ja) * 1999-02-01 2000-08-11 Matsushita Electronics Industry Corp 有限要素生成装置および有限要素生成方法
CN1629849A (zh) * 2003-12-19 2005-06-22 大日本网目版制造株式会社 图形处理装置、图形处理方法和计算机可读程序
JP2008059329A (ja) * 2006-08-31 2008-03-13 Canon Inc 閉ループ自動認識装置及び閉ループ自動認識方法
CN101604452A (zh) * 2008-06-13 2009-12-16 北京大学 利用开放曲线和临近的闭合曲线构建新的闭合曲线的方法
CN101527032A (zh) * 2009-04-03 2009-09-09 昆山市工业技术研究院有限责任公司 平面任意多边形间相互变形方法
CN102629375A (zh) * 2012-01-06 2012-08-08 中国科学院软件研究所 一种判定点是否位于多边形内的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
庞宇飞 等: "《交点判别法——种新型重叠网格洞点搜索方法》", 《THE FOURTH CROSS-STRAIT CFD WORKSHOP, YUNNAN, APRIL 12-13, 2003》 *
艾迪 等: "《二维图形封闭区域自动识别算法》", 《电子设计工程》 *
雷安民 等: "《一种寻找平面图形中最小封闭线框的方法》", 《科学技术与工程》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123738A (zh) * 2014-08-06 2014-10-29 铁道第三勘察设计院集团有限公司 一种二维图形中包围给定点的最小封闭区域发现方法
CN104123738B (zh) * 2014-08-06 2017-10-31 中国铁路设计集团有限公司 一种二维图形中包围给定点的最小封闭区域发现方法
CN106909650A (zh) * 2017-02-23 2017-06-30 和创(北京)科技股份有限公司 位置提示方法和数据处理装置
CN107085865A (zh) * 2017-05-12 2017-08-22 杭州电子科技大学 应用于有限元分析的四边形分割方法
CN108711170A (zh) * 2018-05-21 2018-10-26 武汉山骁科技有限公司 一种基于拓扑不变性的圈地算法
CN108711170B (zh) * 2018-05-21 2022-04-08 武汉山骁科技有限公司 一种基于拓扑不变性的圈地方法
CN111251335B (zh) * 2020-03-24 2021-06-08 桂林电子科技大学 基于包围盒算法的高精度机械臂碰撞检测方法
CN111251335A (zh) * 2020-03-24 2020-06-09 桂林电子科技大学 基于包围盒算法的高精度机械臂碰撞检测方法
CN113808238A (zh) * 2021-09-24 2021-12-17 北京有竹居网络技术有限公司 动画的渲染方法、装置、可读介质和电子设备
CN115619893A (zh) * 2022-07-26 2023-01-17 中国长江三峡集团有限公司 基于矩阵表达式的二维块体切割与搜索方法
CN115619961A (zh) * 2022-07-26 2023-01-17 中国长江三峡集团有限公司 基于矩阵表达式的三维块体切割与搜索方法
CN115619961B (zh) * 2022-07-26 2024-04-30 中国长江三峡集团有限公司 基于矩阵表达式的三维块体切割与搜索方法
CN115619893B (zh) * 2022-07-26 2024-07-05 中国长江三峡集团有限公司 基于矩阵表达式的二维块体切割与搜索方法
CN116757025A (zh) * 2023-06-07 2023-09-15 中国船级社上海规范研究所 一种基于dxf格式的船舶舱室图形自动拾取方法
CN116757025B (zh) * 2023-06-07 2024-02-13 中国船级社上海规范研究所 一种基于dxf格式的船舶舱室图形自动拾取方法

Also Published As

Publication number Publication date
CN103065319B (zh) 2015-03-04

Similar Documents

Publication Publication Date Title
CN103065319A (zh) 一种空间多连通域的封闭面自动搜索方法
CN107392875A (zh) 一种基于k近邻域划分的点云数据去噪方法
CN108022262A (zh) 一种基于点的邻域重心向量特征的点云配准方法
CN112699623B (zh) 基于非结构网格规则化重构技术的高精度热流计算方法
CN106780458B (zh) 一种点云骨架提取方法及装置
US20120166160A1 (en) Block model constructing method for complex geological structures
CN103440683B (zh) 一种基于三维散乱稠密点云的三角网格重构方法
CN106326517B (zh) 层状裂缝-基质杂交网格建模方法和装置
CN103218618A (zh) 一种基于遥感数字图像的公路路线自动提取方法
CN105354881B (zh) 基于离散属性数据的网格变形优化算法
Reinders et al. Skeleton graph generation for feature shape description
CN107274422A (zh) 一种基于法线信息和k邻域搜索结合的点云边缘提取方法
CN103177258A (zh) 一种根据矢量等高线数据自动提取地性线的方法
CN105137412B (zh) 一种2d激光雷达距离图像中线段特征精确拟合方法
CN102298795A (zh) Stl三角网格模型的三维分段方法
CN104240251A (zh) 一种基于密度分析的多尺度点云噪声检测方法
CN103544249A (zh) 一种古建筑散乱点云空间索引的方法
CN110458764A (zh) 一种基于形态学图形处理的点云数据平滑方法
CN109376586A (zh) 基于激光点云的道路边界线交互式自动提取方法
CN102496187A (zh) 一种基于三角形网格的追踪等值线至边界及断层的方法
CN111199064A (zh) 一种地铁轨道面三维中心线生成方法
CN104764937A (zh) 一种电磁环境复杂度快速网格剖分显示方法
CN104778678B (zh) 一种考虑孔喉末端的孔隙喉道识别方法
CN114119620B (zh) 适用于复杂多腔三维模型的骨架线提取方法
CN104407613B (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
TR01 Transfer of patent right

Effective date of registration: 20190319

Address after: Room 408, 1388 Siping Road, Yangpu District, Shanghai 200092

Patentee after: Shanghai same rock civil engineering Polytron Technologies Inc

Address before: Room 408, 1388 Siping Road, Yangpu District, Shanghai 200092

Co-patentee before: Tongji University

Patentee before: Shanghai Tongyan Civil Engineering Technology Co., Ltd.

TR01 Transfer of patent right