一种对复杂三维体碎面进行识别和合并的方法与流程

文档序号:12472295阅读:268来源:国知局
一种对复杂三维体碎面进行识别和合并的方法与流程

本发明属于面向CFD的三维复杂形体建模技术领域,具体涉及一种对复杂三维体碎面进行识别和合并的方法。



背景技术:

在对复杂三维体进行建模时,由于模型结构复杂,需要对模型进行大量的布尔运算,在进行运算的过程中,构建的模型常常会出现一个曲面中有着密集的不规则碎面的情况,这些碎面将严重影响到对模型进行网格划分的正确率和均匀性;并且碎面细小数量多,计算耗时长,效率低下。

针对以上问题,本发明提出一种对复杂三维形体碎面进行识别和合并的方法,该方法采用一定的容错判据对构成曲面的三角形集合进行合并并重新产生三角形。经试验,本发明合并碎面后便于进行后续的网格划分,同时大大地提高了计算的效率,节省了计算时间。



技术实现要素:

发明目的:为了克服现有技术中存在的不足,本发明提供一种对复杂三维体碎面进行识别和合并的方法,针对复杂三维体在进行布尔运算时产生的碎面较小且密集,因而三维体划分的网格质量不高也容易出错,则可能导致CFD计算的无法完成或者得到没有意义的结果,且碎面节点多,计算量大,严重影响了计算效率等一系列问题,发明了一种对复杂三维形体碎面进行识别和合并的方法。

技术方案:为实现上述目的,本发明采用的技术方案为:

一种对复杂三维体碎面进行识别和合并的方法,针对构成复杂几何部件表面的三角形集合进行处理,包括识别可合并的三角形,并将其合并,再组成简单的多边形,最后再利用Delaunay三角剖分法对多边形划分三角形。

进一步的,具体包括以下步骤:

步骤1、输入构成复杂几何部件表面的三角形集合;

步骤2、规整所述三角形集合中的点,将相邻点进行归并;

步骤3、依次判断集合中的三角形是否共边,对共边的三角形进行步骤4;

步骤4、判断三角形是否共面,对共面的三角形进行步骤5;

步骤5、判断三角形是否共两边,如果共两边则删除这个三角形两条共边的交点;

步骤6、合并碎面,组成简单的多边形;

步骤7、利用Delaunay三角剖分法重构三角形。

进一步的,步骤2中,所述的规整三角形集合中的点集是指确定一个误差值ε0=10-4,计算两个点之间的距离d,当其小于ε0时,则将两个点归并为一个点。

进一步的,步骤3中,所述的依次判断集合中的三角形是否共边是指计算三角形三条边的中点,若一个三角形任意一条边的中点与另一个三角形任意一条边的中点重合,则这两个三角形共边。

进一步的,步骤4中,所述的判断三角形是否共面是指确定一个误差值ε1=10-5,计算三角形顶点与其共边三角形所形成的大平面的距离D,如果此距离小于ε1,则这两个共边的三角形共面。

进一步的,步骤5中,所述的判断三角形是否共两边是指若一个三角形中有两条边的中点都分别与其他三角形的边的中点重合,那么这个三角形就是共两边。

进一步的,步骤6中,所述的合并碎面指的是将既共边又共面的三角形之间共边的边删除,三角形两条共边的交点删除,从而合并为一个多边形。

进一步的,步骤7中,所述的对多边形再次划分三角形是指利用Delaunay三角剖分法对多边形划分三角形,先以最近的三个顶点形成三角形,且各线段皆不相交;再找出这些三角形中最小角所在的三角形,对其作外接圆,外接圆的圆心即为插入点;检测插入点是否在其他三角形的外接圆内,如果在,则将这些三角形任意两个顶点与插入点重新构成一个三角形,如果不在,则不需重新构造三角形。

有益效果:本发明提供的一种对复杂三维体碎面进行识别和合并的方法,与现有技术相比,具有的优势是:

1.本发明是一种识别和合并碎面的方法,合并了密集的小三角形,便于对进行布尔运算后的复杂三维体进行网格划分,不会出现网格出错的情况,且网格质量也随之提高。

2.本发明合并大量的碎面,减少了网格节点,从而网格的数量减少,减少了计算量,使得程序运行速度提高,效率大大增加。

附图说明

图1为本发明的碎面示意图。

图2为本发明的对复杂三维形体碎面进行识别和合并的方法的流程图。

图3为本发明的归并相邻较近点的示意图。

图4为本发明的判断三角形共边的示意图。

图5为本发明的判断三角形共面的示意图。

图6为本发明的共两边的示意图。

图7为本发明的合并碎面的示意图。

图8为本发明的重构三角形示意图。

图9为本发明实施例对一个复杂模型识别并合并碎面后进行网格划分所得的非结构化网格示意图。

具体实施方式

下面结合附图对本发明作更进一步的说明。

该方法首先输入构成复杂几何部件表面的三角形集合,再先后判断曲面上的三角形是否共边和共面,如果既共边又共面则合并这两个三角形碎面,如果只满足共边则不对碎面进行合并。该方法合并了密集的小三角形,便于对进行布尔运算后的复杂三维体进行网格划分,不会出现网格出错的情况,且减少了网格节点,减少了计算量,使得程序运行速度提高,效率大大增加。

一种对复杂三维形体碎面进行识别和合并的方法,针对构成复杂几何部件表面的三角形集合进行处理,识别可合并的三角形,并将其合并,组成简单的多边形,最后再利用Delaunay三角剖分法划分三角形。具体步骤如下:

步骤1、输入构成复杂几何部件表面的三角形集合;

步骤2、规整三角形集合中的点,将相邻比较近的点进行归并;规整三角形集合中的点集是指确定一个误差值ε0=10-4,计算两个点之间的距离d,当其小于ε0时,此时在程序中肉眼已看不到两点之间有距离误差,则将两个点归并为一个点;

步骤3、依次判断集合中的三角形是否共边,对共边的三角形进行步骤4,没有共边的三角形不进行处理;是否共边是指计算三角形三条边的中点,若一个三角形的中点与另一个三角形的中点重合,则这两个三角形共边;没有共边的三角形不进行处理。

步骤4、判断三角形是否共面,对共面的三角形进行步骤5,若不共面则跳出;是否共面是指确定一个误差值ε1=10-5,计算三角形顶点与其共边三角形所形成的大平面的距离D,如果此距离小于ε1,则这两个共边的三角形共面;若不共面则跳出;

步骤5、判断三角形是否共两边,如果共两边需要删除一个顶点;是否共两边是指若一个三角形中有两条边的中点都与其他三角形的中点重合,那么这个三角形就是共两边,此时还需要处理这个三角形两条共边的交点;

步骤6、合并碎面,组成简单的多边形;合并碎面指的是将既共边又共面的三角形之间共边的边删除,共两边的点删除,从而合并为一个多边形;

步骤7、利用Delaunay三角剖分法重构三角形是指利用Delaunay三角剖分法对多边形划分三角形。

下面结合本发明实例中的附图对本发明作进一步的说明。

实施例

如图1所示为进行布尔运算后构成复杂三维体表面的三角形碎面。一种对复杂三维形体碎面进行识别和合并的方法,如图2所示,包括以下步骤:

步骤1、输入构成复杂几何部件表面的三角形集合;

步骤2、规整构成复杂几何部件表面的三角形集合中的点,确定误差值ε0,通过计算两个点之间的距离对点进行归并,如果两个点之间的距离小于ε0=10-4,此时在程序中肉眼已看不到两点之间有距离误差,则归并这两个点合为一个点,如图3所示;

步骤3、以三角形f1、f2为例判断三角形是否共边。计算三角形f1三条边的中点,再计算三角形f2三条边的中点,通过计算得三角形f1中B1C1边的中点M与三角形f2中A2C2边的中点M1重合,那么这两个三角形就是共边的,如图4所示。下面需要判断三角形是否共面;

步骤4、确定一个误差值ε1=10-5,以f1的三个点创建一个大平面Plane,B2点为三角形f2中A2C2边的对顶点,计算B2点与平面Plane的距离D,若此距离小于ε1,那么两个三角形共面,如图5所示。

步骤5、在这两个三角形共面的情况下,还需要判断f1与f2是否其他三角形也共边。经计算可得三角形f2中边A2B2中的中点与三角形f3中边A3C3的中点重合,则三角形f2和三角形f3也共边,那么还需要处理两条共边的交点B1(A2)(A3),如图6所示。

步骤6、对一系列既共边又共面的三角形碎面进行合并,首先将两个共边三角形的共边删除,若其中一个三角形与另一个三角形也共边,需将这个三角形两条共边的交点删除,则得到了一个简单的多边形,如图7所示。

步骤7、利用Delaunay三角剖分法对多边形划分三角形,如图8所示。

本发明实施例取得的效果为:对一个复杂模型合并碎面后进行网格划分,产生的非结构化网格数为243891,网格计算时间为时间为25.2s,相比于未处理碎面产生的非结构化网格数更少,时间更短,网格质量也有所提高。产生的非结构化网格图如图9所示。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1