三角网格数据的布尔运算方法及其系统技术方案

技术编号:7786907 阅读:384 留言:0更新日期:2012-09-21 08:21
本发明专利技术适用于几何建模技术领域,提供了一种三角网格数据的布尔运算的方法,所述方法包括如下步骤:A、对采用三角网格表示的三维模型进行悬边、悬点消除和重合点归并处理,获得新规整化的两个三角网格;B、提取包含所述新规整化的两个三角网格的相交区域的局部三角网格;C、将所述局部三角网格进行碰撞检测计算、三角剖分、网格重构、内外关系判断以及布尔运算,拼接且输出新的三角网格表示的三维模型。借此,本发明专利技术降低了三角网格数据的布尔运算出错的概率,提高了布尔运算的计算速度;同时在进行内外关系判断时消除了对模型封闭性的依赖。

【技术实现步骤摘要】

本专利技术涉及几何建模
,尤其涉及ー种三角网格数据的布尔运算方法及其系统
技术介绍
几何建模技术是指计算机里组织数据类型和数据结构以表示物体在空间的形状、尺寸及位置信息。目前大量使用在3D游戏和动画,计算机辅助设计,电影特效,数字城市,地质建模,分子生物学,数字医学等领域。三维空间的几何模型简称为三维模型,主要有线框模型、表面模型和实体模型三种表示方法,其中表面模型运用最为广泛,三角网格数据是表面模型的ー种常用形式。几何模型布尔运算是指对两个模型的空间信息进行并、交、差等操作以得到新的模型。在建立和处理复杂模型时,可运用布尔运算对模型进行灵活的加工 和修改。现有的商用几何建模软件有AutoCAD, Solidfforks, Maya, 3dMax, UG等,都集成了三维模型布尔运算功能,但目前的布尔运算方法要求參与布尔运算的模型必须是封闭的,而且在处理大規模的模型数据时速度较慢,存在多次运算导致软件速度下降甚至出错的问题。综上可知,现有的几何建模技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
技术实现思路
针对上述的缺陷,本专利技术的目的在于提供ー种三角网格数据的布尔运算的方法,以降低了三角网格数据的布尔运算出错的概率,提高了布尔运算的计算速度;为了实现上述目的,本专利技术提供ー种三角网格数据的布尔运算的方法,所述方法包括如下步骤A、对采用三角网格表示的三维模型进行悬边、悬点消除和重合点归并处理,获得新规整化的两个三角网格;B、提取包含所述新规整化的两个三角网格的相交区域的局部三角网格;C、将所述局部三角网格进行碰撞检测计算、三角剖分、网格重构、内外关系判断以及布尔运算,拼接且输出新的三角网格表示的三维模型。根据所述的方法,所述步骤A包括Al、分别获取所述三角网格中的每个三角形的顶点数组、三角形数组以及相邻关系数组,并且分别构建两个新的三角网格;A2、顺序访问每个所述三角形的三角形数组的拓扑单元,若已经完成全部所述三角形访问,则执行步骤A5;若没有完成全部所述三角形访问,则取出每个所述三角形的三个顶点索引;若所述三个顶点索引中的两个或者三个顶点索引相同时,则所述拓扑单元为退化単元三角形,丢弃所述退化単元三角形,并重新开始执行所述步骤A2,顺序取出下一个拓扑単元;在所述三个顶点索引中的三个顶点索引均不相同时,则执行步骤A3 ;A3、根据所述三个顶点索引在所述顶点数组获取顶点坐标,并以不重合的方式插入到新构建的顶点数组中;A4、将所述三个顶点索引作为ー个拓扑单元插入新构建的三角形数组中,并且返回所述步骤A2,顺序取出下一个拓扑単元,重新开始执行所述步骤A2 ;A5、顺序访问所述新构建的三角形数组,根据每个拓扑单元的三个顶点索引将三角形索引写入顶点对应的相邻关系数组行中;A6、查看所述三角网格中的所有相邻关系数组,将所述相邻关系数组中没有数据的行所对应的顶点标记为不可用状态。根据所述的方法,所述步骤Al包括All、使用线性浮点型数组保存所述三角网格中的每个三角形的顶点坐标,获得所述三角网格的顶点数组;A12、使用线性整数型数组保存所述三角网格的顶点索引,获得所述三角网格的三角形数组;A13、使用ニ维整型数组保存所述三角网格中的每个三角形的顶点所属的三角形索引,获得所述三角网格的相邻关系数组;A14、根据所述三角网格的顶点数组、三角形数组以及相邻关系数组分别构建两个新的三角网格。根据所述的方法,所述步骤B包括BI、分别查看所述新规整化的两个三角网格的顶点数组,计算所述新规整化的两个三角网格的X、Y、Z坐标的最大值和最小值,构成两个包围盒;B2、分别构建所述新规整化的两个三角网格的局部三角网格的顶点数组、三角形数组和相邻关系数组;B3、分别查看所述新规整化的两个三角网格的局部三角网格的三角形数组,若其中一个所述新规整化的三角网格的三角形有一个顶点处于另一个所述新规整化的三角网格的包围盒范围内,则将所述三角形标记为应删除状态;B4、将在所述包围盒范围内的新规整化的三角网格的三角形的顶点、拓扑单元以及相邻关系写入所述新规整化的两个三角网格的局部三角网格的顶点数据、三角形数组以及相邻关系数组中。根据所述的方法,所述步骤C包括Cl、采用层次包围盒树碰撞检测方法,计算出所述新规整化的两个三角网格的局部三角网格的相交三角形对,以及所述相交三角形对中的每ー个三角形上的交线;C2、将所述相交三角形对标记为应删除状态,对每一个相交三角形使用三角化方法根据其交点和三角形顶点重新生成三角形;C3、动态构建一个或者多个新局部三角网格的顶点数组、三角形数组和相邻关系数组,以所述交线为边界,将未标记为应删除状态的所述新规整化的两个三角网格的局部三角网格数据,以及使用所述三角化方法生成的三角形写入所述新局部三角网格的数组中;C4、判断每ー个新局部三角网格与所述新规整化的两个三角网格的局部三角网格的内外关系;C5、根据判断后的所述每ー个新局部三角网格与所述新规整化的两个三角网格的局部三角网格的内外关系和布尔运算类型,标记需要输出的新局部三角网格的组合,并输出对应的三角网格。 根据所述的方法,在所述步骤B4中通过步骤Df D4将在所述包围盒范围内的三角网格的三角形的顶点、拓扑单元以及相邻关系写入所述新规整化的两个三角网格的局部三角网格的顶点数据、三角形数组以及相邻关系数组中;所述步骤DfD4为D1、分别根据在所述包围盒范围内的三角形的顶点的三个顶点索引在所述新规整化的两个三角网格的顶点数组获取顶点坐标,并以不重合的方式插入到所述新规整化的两个三角网格的局部三角网格的顶点数组中;D2、在所述三个顶点索引中的三个顶点索引均不相同吋,将所述三个顶点索引作为ー个拓扑单元插入所述新规整化的两个三角网格的局部三角网格的三角形数组中;并且返回所述步骤D1,顺序取出下一个拓扑単元,重新开始执行所述步骤Dl ;D3、顺序访问所述新规整化的两个三角网格的局部三角网格的三角形数组,根据每个拓扑单元的三个顶点索引将三角形索引写入顶点对应的相邻关系数组行中;D4、查看所述新规整化的两个三角网格的局部三角网格的所有相邻关系数组,将所述相邻关系数组中没有数据的行所对应的顶点标记为不可用状态;和/或在所述步骤C3中通过步骤Ef E4将以交线为边界,将未标记为应删除状态的所述新规整化的两个三角网格的局部三角网格数据,以及所述三角化方法生成的三角形写入所述新局部三角网格的数组中;所述步骤EfE4为El、分别根据所述步骤C2中的所述相交三角形对和所述重新生成的三角形的顶点的三个顶点索引在所述ー个或者多个新局部网格的顶点数组获取顶点坐标,并以不重合的方式插入到所述ー个或者多个新局部网格的顶点数组中;E2、在所述三个顶点索引中的三个顶点索引均不相同吋,将所述三个顶点索引作为ー个拓扑单元插入所述ー个或者多个新局部网格的三角形数组中;并且返回所述步骤E1,顺序取出下一个拓扑単元,重新开始执行所述步骤El ;E3、顺序访问所述一个或者多个新局部网格的三角形数组,根据每个拓扑单元的三个顶点索引将三角形索引写入顶点对应的相邻关系数组行中;E4、查看所述ー个或者多个新局部网格的中的所有相邻关系数组,将所述相邻关系数组中没有数据的行所对应的顶点标记为不可用状态;和/或在所述步骤C本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种三角网格数据的布尔运算的方法,其特征在于,所述方法包括如下步骤 A、对采用三角网格表示的三维模型进行悬边、悬点消除和重合点归并处理,获得新规整化的两个三角网格; B、提取包含所述新规整化的两个三角网格的相交区域的局部三角网格; C、将所述局部三角网格进行碰撞检测计算、三角剖分、网格重构、内外关系判断以及布尔运算,拼接且输出新的三角网格表示的三维模型。2.根据权利要求I所述的方法,其特征在于,所述步骤A包括 Al、分别获取所述三角网格中的每个三角形的顶点数组、三角形数组以及相邻关系数组,并且分别构建两个新的三角网格; A2、顺序访问每个所述三角形的三角形数组的拓扑单元,若已经完成全部所述三角形访问,则执行步骤A5; 若没有完成全部所述三角形访问,则取出每个所述三角形的三个顶点索引;若所述三个顶点索引中的两个或者三个顶点索引相同时,则所述拓扑单元为退化单元三角形,丢弃所述退化单元三角形,并重新开始执行所述步骤A2,顺序取出下一个拓扑单元;在所述三个顶点索引中的三个顶点索引均不相同时,则执行步骤A3 ; A3、根据所述三个顶点索引在所述顶点数组获取顶点坐标,并以不重合的方式插入到新构建的顶点数组中; A4、将所述三个顶点索引作为一个拓扑单元插入新构建的三角形数组中,并且返回所述步骤A2,顺序取出下一个拓扑单元,重新开始执行所述步骤A2 ; A5、顺序访问所述新构建的三角形数组,根据每个拓扑单元的三个顶点索引将三角形索引写入顶点对应的相邻关系数组行中; A6、查看所述三角网格中的所有相邻关系数组,将所述相邻关系数组中没有数据的行所对应的顶点标记为不可用状态。3.根据权利要求2所述的方法,其特征在于,所述步骤Al包括 All、使用线性浮点型数组保存所述三角网格中的每个三角形的顶点坐标,获得所述三角网格的顶点数组; A12、使用线性整数型数组保存所述三角网格的顶点索引,获得所述三角网格的三角形数组; A13、使用二维整型数组保存所述三角网格中的每个三角形的顶点所属的三角形索引,获得所述三角网格的相邻关系数组; A14、根据所述三角网格的顶点数组、三角形数组以及相邻关系数组分别构建两个新的二角网格。4.根据权利要求2所述的方法,其特征在于,所述步骤B包括 BI、分别查看所述新规整化的两个三角网格的顶点数组,计算所述新规整化的两个三角网格的X、Y、Z坐标的最大值和最小值,构成两个包围盒; B2、分别构建所述新规整化的两个三角网格的局部三角网格的顶点数组、三角形数组和相邻关系数组; B3、分别查看所述新规整化的两个三角网格的局部三角网格的三角形数组,若其中一个所述新规整化的三角网格的三角形有一个顶点处于另一个所述新规整化的三角网格的包围盒范围内,则将所述三角形标记为应删除状态; B4、将在所述包围盒范围内的三角形的顶点、拓扑单元以及相邻关系写入所述新规整化的两个三角网格的局部三角网格的顶点数据、三角形数组以及相邻关系数组中。5.根据权利要求4所述的方法,其特征在于,所述步骤C包括 Cl、采用层次包围盒树碰撞检测方法,计算出所述新规整化的两个三角网格的局部三角网格的相交三角形对,以及所述相交三角形对中的每一个三角形上的交线; C2、将所述相交三角形对标记为应删除状态,对每一个相交三角形使用三角化方法根据其交点和三角形顶点重新生成三角形; C3、动态构建一个或者多个新局部三角网格的顶点数组、三角形数组和相邻关系数组,以所述交线为边界,将未标记为应删除状态的所述新规整化的两个三角网格的局部三角网格数据,以及使用所述三角化方法生成的三角形写入所述新局部三角网格的数组中; C4、判断每一个新局部三角网格与所述新规整化的两个三角网格的局部三角网格的内夕卜关系; C5、根据判断后的所述每一个新局部三角网格与所述新规整化的两个三角网格的局部三角网格的内外关系和布尔运算类型,标记需要输出的新局部三角网格的组合,并输出对应的三角网格。6.根据权利要求5所述的方法,其特征在于,在所述步骤B4中通过步骤DfD4将在所述包围盒范围内的三角形的顶点、拓扑单元以及相邻关系写入所述新规整化的两个三角网格的局部三角网格...

【专利技术属性】
技术研发人员:叶建平张吉帅郭李云张磊
申请(专利权)人:深圳市旭东数字医学影像技术有限公司
类型:发明
国别省市:

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

1