断面建模

如题所述

(一)断面的生成

在断面建模之前,要先导入剖面图和钻孔以及断层线等信息。根据导入的剖面图、断层线和钻孔信息,来生成模型的断层。生成断层有两种方式,即根据剖面上的断层剖面线和根据离散点数据生成。

1.离散点断面建模算法

基于不同方法获取的离散点数据,可进行插值生成断面模型,下面是根据离散点来构建断面算法的思想。

(1)求解投影坐标系。断面采用的投影坐标系并非断面的最小二乘面投影坐标系,而是在求得最小二乘面后,将Z方向的偏差置为0,这是一个世界坐标与XOY平面垂直的平面。根据断面的特点,断面在一般情况下是竖直的,这样的投影平面不会出现插值点重叠的问题。该设计是为在查找地层离散点在断层上的投影点时提供一个更有意义的投影坐标系。

(2)求解矩形基础网格,并根据基础网格计算三角网格,根据三角网格包围盒计算一个包围边界。用这个包围边界作为第一次裁剪曲面的边界,得到初始显示曲面。

(3)用户根据需求对初始显示曲面进行编辑或者指定初始显示曲面的裁剪曲面就可以得到显示曲面。重复本步骤,直至满足要求,完成最终的断面模型。

2.基于剖面上的断层线生成断面模型

将剖面导入三维建模软件系统之后,对剖面上的断层线进行分析,选定属于相同断层的剖面断层线,然后进行剖分、插值生成断层。如图4-11所示。

图4-11 根据剖面上的断层线生成断层

3.基于离散点数据生成断面模型

通过导入的离散点也可以生成断层,或者在钻孔导入三维建模软件系统之后,通过在孔轨迹上指定断层上的钻点,然后通过剖分、插值生成断层。如图4-12所示。

图4-12 根据离散点生成断层

(二)断面的编辑

断层生成之后,根据需要可以编辑断层边界和使用控制点编辑断层,改变断层面的形状,还可以通过修改属性框中的内容来编辑断层的属性等。如图4-13所示。

图4-13 根据离散点生成断层

对地质体中的信息进行修改是重要的功能之一。课题组地质体模型的数据结构中,输入可以是点集合和折线集合,但是折线集合也被示为有序点的集合。所以,对于点的编辑和修改是所有编辑和修改的基础。由于一般图形平台中很难解决计算机图形学中的一个基本问题即“坐标变换”的深度问题,所以只能依赖于生成的三角网格面,实现沿着面和垂直面两个方向的空间点的“位置坐标”编辑,即标量编辑。采用标量编辑,解决了“坐标变换”的深度问题,实现了不依赖于三角网格面的空间点编辑。

此外,还采用了“三维空间矢量点”的编辑功能。“三维空间矢量点”是指工区种的三维点不仅含有“位置坐标”的概念,还赋予每个点一个“方向矢量”。这样,很容易对空间点进行方向上的编辑功能,我们称谓“三维空间矢量点编辑”。本系统中多处采用了这种编辑功能,例如断面上控制点的编辑(图4-13(a))、地层上控制点的编辑、光源矢量的编辑等。光源矢量的编辑效果如图4-14所示。

图4-14 光源矢量编辑功能

(三)定义断面关系

在建模时,对于工区中相交的两个断层,需要确认它们的相交关系,即哪一个是主切面,哪一个是被切面。通过定义它们的关系,实现主断层面剪切辅断层面的功能。在定义主断层面时,一般选择相对较高且长度大于被切断层面在其上的投影面的断层面,这样选择的要求可使系统较快地构建断面网格。

断层主辅关系定义之后,选择“更新断层”功能,生成切割后的断层。图4-15所示为定义断层关系之后重新生成的断层效果。

图4-15 定义断层关系

(四)三角网格边界裁剪算法

网格边界裁剪算法是构建连续曲面的基础算法。在复合结构表示的地质面构建算法中,没有采用根据边界进行三角剖分和插值的方法来构建地质面,而是设计了一种通用性更广、集网格裁剪、网格分割的快速网格边界计算方法。本系统中多处要应用此算法,如主辅断面的裁减、主辅地层的裁减、地层三角网与断面矩形网的裁减等等。

由三角剖分生成的三角网格均匀且易于保证求交精度,而直接切分的三角形势必出现三角形畸形的问题。由于本算法的计算基础是曲面的矩形网格,所以畸形的三角形对算法没有影响。

表4-1是分别由三角剖分和矩形网格映射生成三角网格的效果对比。

表4-1 三角网格效果对比

由表4-1可以看出,三角剖分和矩形网格映射各有优缺点,在本软件中,我们结合这两种方法的优点,设计出了一种全新的三角网格构建方法,具体将在下文中详细介绍。

1.裁剪器的设计

本系统中根据地质面边界计算的需求设计了裁剪器的结构。裁剪的核心计算部分是统一的,其他的输入和细节处理部分由虚函数分发到不同的子类处理,具有可维护性高,扩展性好的特点。

初始构建的三角网格由矩形网格映射而成,具有矩形的边界。同时在构建过程中采用了保留拓扑关系的映射方式,使得三角网格中相邻三角形之间有拓扑关系,并且在以后的计算中将保留并维护这种拓扑关系。

在构建地质面过程中,地质面边界可能由于以下情况而发生改变:

(1)用户直接对地质面边界进行编辑。

(2)地质面将地质面的边界改变;地质面被地质面切割包括两种:一种是有矩形背景网格的三角网格被三角网格切割;一种是无矩形背景网格的三角网格被有矩形背景网格的三角网格切割。对于三角网格被三角网格切割的情况,考虑到算法的效率以尽量避免为主,算法不对其进行研究。

(3)在地质面被切割时,还包括局部切割和全局切割的情况。

分析上述地质面切割的特点,发现上述切割有一个共同的特点,即三角网格被切割成两个部分后,网格的形态没有改变,只是网格的边界发生改变。根据上述需求三角网格裁剪的算法输入是:

(1)三角形网格:本算法为了提高运算的效率采用如下的三角网格结构:每个三角形中保存的是顶点的指针和临近三角形的指针。一套三角网格保存着一个顶点集合用来记录所有的顶点。该结构不仅能清晰记录三角形的形状信息和地理位置信息,还能保存同该三角形的相邻拓扑信息,便于查找和运算。本裁剪算法就是以此为基础进行设计和实现的。本算法认为三角网格边界相对于三角网格密度足够光滑,在三角形内部没有拐点。

(2)剪路径:裁剪路径是地质面新的边界,裁剪路径的限制条件是输入的裁剪路径不自交。

根据对输入条件的分析,裁剪三角形的流程是统一的,都是将三角形网格一分为二,只是裁剪路径的决定条件不同。裁剪路径可以是由多边形决定,也可以是由曲面决定,还可以是由其他几何元素决定,本算法根据C++派生类的关系设计了裁剪算法的机制——裁剪器。

构建裁剪器后,只需传入待裁剪的三角网格和裁剪路径,裁剪器就可以完成对三角网格的裁剪工作。不同的路径判断算法需要构建不同的裁剪器,每个具体裁剪器都从裁剪器基类派生而来,裁剪器基类负责三角网格的裁剪工作。这样有利于算法的维护和扩展。

2.裁剪器的基本裁剪算法

裁剪算法可以应用于所有三角网格被矩形网格或折线裁剪的情况,并且裁剪时对三角形拓扑关系的维护及重建过程是一致的,采用有拓扑的三角网格结构能起到很好的加速作用。

根据带拓扑关系的三角网格的特点,裁剪算法的流程如图4-16所示。

图4-16 三角网格裁剪流程

具体算法流程为:

(1)确定所有三角形的顶点与裁剪路径的关系,有以下两种可能的关系:①顶点在裁剪路径内;②顶点在裁剪路径外(即将被裁剪掉的部分)。该功能由每个具体的裁剪器来完成。

(2)根据顶点关系将三角形分类:顶点全部在裁剪路径外或全部在裁剪路径上的三角形为不需要裁剪的三角形,其他的为待裁剪三角形。

(3)建立一个待裁剪三角形堆栈,选出一个待裁剪三角形作为初始三角形入栈,开始裁剪:

①在初始三角形中,肯定有两个顶点同侧,如图4-17所示的三角形中顶点c和顶点b同侧;

图4-17 初始三角形

②求解三角形与裁剪路径的交点值,分别记为A和B,具体求交过程由每个具体的裁剪器完成,如图4-18所示:

图4-18 三角形交点

③建立四个新三角形顶点A,B,A'和B',其中A=A',B=B'。建立三个新三角形,分别为△aBA,△B'bc和△A'B'c,如图4-19所示:

图4-19 新三角形结构

④为上述三个新三角形建立拓扑关系,保持三角网格中拓扑的完整性,同时,将ac和ab边所对应的三角形入栈等待处理。记录维护拓扑所需的相应信息后,将初始三角形出栈并将其在三角网格中删除。将栈顶的三角形作为初始三角形重复步骤Ⅲ,直至栈空。

(4)查找待裁剪网格中没有裁剪的三角形,如果有则重复上述步骤(3)。

(5)根据三角网格顶点与裁剪路径的位置关系将三角形网格裁剪为两个三角网格。

(6)裁剪后的三角形网格存在法矢缺失的问题,在显示时,需要考虑到光照和反射才能有较好的三维效果。作为待显示的三角网格,需要补齐法矢。

3.裁剪器其他的功能

在基本算法的基础上,为了完成不同对象之间的裁剪,裁剪器还定义了一些其他的功能,包括:计算三角网格同裁剪器的交点、根据空间位置将三角网格顶点划分为裁剪路径正侧和负侧。裁剪器主要有以下几种:

(1)多边形裁剪器

主要用于裁剪多余的三角形,标定曲面的边界和有效范围。多边形裁剪器在裁剪三角网格时,将三角网格分为多边形内部和多边形外部两个部分进行裁剪。在三维地质建模过程中常常需要用多边形来标识断面边界,因此需要使用多边形裁剪器。该裁剪器的功能如下:

工作1:用多边形将三角网格顶点分为多边形内部和多边形外部。

工作2:用三角形边和多边形网格求交点。

(2)矩形网格完全裁剪器

该裁剪器是用矩形网格将待裁剪的三角网格分为两部分,当不能将三角网格完全划分为两个部分时,则矩形网格延长将三角网格完全划分为两个部分—矩形网格正侧部分和矩形网格负侧部分。利用矩形网格来判断待划分的三角网格顶点在矩形网格正侧还是负侧非常高效。可以采用该裁剪器计算断面被其他地质面裁剪后的形态。该裁剪器的功能如下:

工作1:用矩形网格将三角网格顶点分为矩形网格正侧顶点和矩形网格负侧顶点。

工作2:用三角形边和矩形网格求交点。

(3)矩形网格不完全裁剪器

该裁剪器是用矩形网格破坏待裁剪三角网格的拓扑关系,将矩形网格与待裁剪三角网格相交处三角形分为两步分,而三角网格本身并没有被完全割断。该裁剪器用于求解断层分割地层的裂口。该裁剪器的功能如下:

工作1:用矩形网格将三角网格顶点分为矩形网格正侧顶点和矩形网格负侧顶点。

工作2:用三角形边和矩形网格求交点。

经过多次不同裁剪器裁剪后的三角网格形态如图4-20所示:

图4-20 多次不同裁剪器裁剪后的三角网格

温馨提示:答案为网友推荐,仅供参考