1. 引言
1.1. 研究背景与意义
在地质研究领域,对地下复杂地质结构的精准认知是揭示地球演化奥秘、探寻矿产资源分布规律的基础[1]。在资源勘探方面,精确的三维地质模型能够帮助勘探人员更准确地定位潜在的资源富集区域,降低勘探成本,提高资源开发效率。于工程建设而言,无论是大型基础设施的选址,还是地下工程的设计与施工,对地质条件的透彻了解都关乎工程的安全性与稳定性[2]。
然而,当前主流的三维地质建模软件在操作便捷性上存在明显不足。其操作界面往往充斥着繁杂的功能选项与复杂的操作流程,新手用户需要花费大量时间学习和摸索,这无疑阻碍了三维地质建模技术在更广泛领域的推广与应用[3]。开发一款操作简便、易于上手的三维地质建模软件迫在眉睫,它不仅能够降低技术使用门槛,让更多地质工作者、科研人员以及相关工程从业者受益,还能加速三维地质建模技术在实际工作中的应用进程,推动地质相关领域的发展[4]。
1.2. 国内外研究现状
国外在三维地质建模软件研发方面起步较早,涌现出如GOCAD、Surpac等功能强大的软件。GOCAD具备卓越的地质构造建模能力,能够处理复杂的地质界面;Surpac则在矿山地质建模与资源评估方面表现出色[5]。但这些软件普遍存在操作复杂、学习成本高的问题,对于初次接触三维地质建模的用户而言,掌握其操作方法颇具难度。
国内在相关软件研发上也取得了一定进展,部分软件在特定领域发挥了重要作用。然而,从整体来看,在操作便捷性与功能的集成优化方面,与国外先进软件仍存在差距[6]。相较之下,本软件将以操作便捷为核心优势,通过简单明了的界面设计与功能布局,简化操作流程,同时在赋值功能和断层功能上进行针对性优化,形成差异化竞争优势,以满足不同用户群体的需求[7]。
2. 软件整体架构与设计理念
2.1. 架构搭建
本软件以C++作为核心开发语言,凭借其高效的性能与强大的操控能力,能高效处理三维地质建模过程中复杂的数据运算与逻辑处理。
在用户界面构建方面,选用Qt框架。Qt具有出色的跨平台特性,可保证软件在Windows、Linux、Mac等多种操作系统上稳定运行,其丰富的GUI组件库为打造简洁、美观且易用的用户界面提供了有力支撑。
为实现高质量的三维可视化效果,软件借助了功能强大的VTK库。VTK不仅有丰富的可视化算法与工具,能将地质数据以直观、逼真的三维模型呈现给用户,帮助用户更清晰地理解地质结构,还在模型创建与数据处理等方面发挥着关键作用。软件运用VTK中的基本形体类创建了长方体、圆柱体等基本形体;在赋值功能里,VTK的网格类承担着重要职责,例如vtkStructuredGrid可将模型空间划分成网格。同时,VTK中的类和方法在软件中也发挥了巨大作用,像vtkSelectEnclosedPoints能用于判断网格点是否在形体内部,这对地层模型赋值起到了决定性作用。此外,软件编写了一个视图类,该类继承于VTK的QVTKOpenGLNativeWidget,并作为全局变量使用,在整个软件中专门负责视图渲染的功能。
在实际运行时,C++负责核心算法的实现与数据处理,Qt将处理后的数据以友好的界面形式展示给用户,继承自QVTKOpenGLNativeWidget的视图类配合VTK完成模型的可视化渲染,三者相互协作,保障了软件的高效运行。
2.2. 设计理念
软件秉持以用户为中心的设计理念。在界面布局上,摒弃传统软件复杂的层级式菜单结构,采用简洁明了的扁平化设计。将常用功能,如赋值、断层模型创建等,以醒目的图标形式置于主界面,方便用户快速找到并操作。在操作流程设计上,充分考虑新手用户的认知习惯与操作能力。以赋值功能为例,简化地质体选择流程,通过直观的鼠标双击方式即可完成选择;属性值输入采用直接输入的方式。在断层功能操作中,仅需用户输入关键参数断距与倾角,即可自动生成断层模型,避免繁琐的参数设置过程,最大程度降低用户的学习成本,提升软件的易用性。
3. 主界面介绍
图1是“Coal GeoModeling”三维地质建模软件的主界面,整体设计简洁,功能分区明确,旨在方便用户进行地质模型创建与编辑操作,以下是对各区域的介绍:
(1) 菜单栏:位于界面最上方,包含“模型空间”“工程”“基本形体”等多个选项。通过这些选项,用户可以访问软件的各类功能,如管理模型空间、处理工程数据、创建基本形体、操作面数据和体数据等。
(2) 工具栏:在菜单栏下方,以图标形式呈现了常用功能,如新建、打开、保存工程,创建不同类型的基本形体等。这些图标形象直观,便于用户快速找到并点击使用。
(3) 地质模型对象窗口:在界面左侧上方区域,这里用于显示已创建的地质模型对象列表。用户可以在此查看、选择和管理模型对象,为后续的操作做准备。
(4) 切片操作区域:位于界面左侧下方,提供“单独切片”和“整体切片”两种模式。用户可以通过X轴、Y轴、Z轴旁的箭头按钮和数值输入框,精确控制切片的位置,还能通过“Delete”按钮删除切片相关设置。
(5) 绘图区:占据界面中间大部分的空白区域,是用户创建的地质模型显示的地方,用户可以在此进行模型的可视化操作。
(6) 快捷图标栏:在界面右侧,竖向排列了一系列快捷图标,代表不同的模型类型或操作,方便用户快速调用相关功能,辅助完成地质建模工作。
Figure 1. Main interface
图1. 主界面
4. 基本形体建立功能
4.1. 长方体创建
图2是创建长方体的UI界面,用户输入长方体的中心点位置,再输入长、宽、高三个维度的数值,即可快速生成一个长方体,如图3所示。选择颜色按钮可以选择生成长方体的颜色。
Figure 2. Creating a cuboid UI interface
图2. 创建长方体UI界面
Figure 3. Cuboid
图3. 长方体
4.2. 球体的创建
图4是创建球体的UI界面。球体的建立有两种方法:第一种方法是用户输入球心坐标和球的半径生成一个球体。第二种方法是用户通过输入三个点的坐标生成一个球体。选择颜色按钮可以选择生成球体的颜色。球体如图5所示。
Figure 4. Creating a sphere UI interface
图4. 创建球体UI界面
Figure 5. Sphere
图5. 球体
4.3. 圆柱体的创建
Figure 6. Creating a cylinder UI interface
图6. 创建圆柱体UI界面
图6是创建圆柱体的UI界面,用户通过输入中心点的坐标,以及圆柱的半径和高度,再输入分辨率,即可生成一个圆柱体,如图7所示,选择颜色按钮可以选择生成圆柱体的颜色。
Figure 7. Cylinder
图7. 圆柱体
4.4. 四面体的创建
图8是创建四面体UI界面,用户通过输入四面体的四个顶点的坐标,即可生成一个四面体,如图9所示,选择颜色按钮可以选择生成四面体的颜色。
Figure 8. Creating a tetrahedron UI interface
图8. 创建四面体UI界面
Figure 9. Tetrahedron
图9. 四面体
4.5. 圆锥的创建
图10是创建圆锥体UI界面,用户通过输入圆锥的高度、半径和分辨率即可生成一个圆锥体,如图11所示,选择颜色按钮可以选择生成圆锥体的颜色。
Figure 10. Creating a cone UI interface
图10. 创建圆锥体UI界面
Figure 11. Cone
图11. 圆锥体
以上这些形体创建后,我会使用一个形体管理类,统一管理这些形体数据。
5. 主要功能描述
5.1. 建立断层模型功能概述
图12是构建断层模型的UI界面,具体操作如下:
(1) 命名断层模型
用户可在“断层模型名称”后的文本框中输入名称,如示例中的“煤层断层”,方便后续对模型进行识别和管理。
(2) 选择关联形体
通过“选择形体”的下拉菜单,用户能选取与该断层相关联的地质形体,比如这里的“煤层”,确定断层作用的对象。
(3) 设置关键参数
在“倾角”文本框中,用户需输入断层的倾斜角度数值,该参数决定了断层的倾斜方向。
在“断距”文本框中,用户输入断层两盘相对位移的距离,它体现了断层的位移规模。
(4) 创建断层模型:
当用户完成上述信息输入后,点击“创建断层模型”按钮,软件后台会根据用户设置的参数和选定的形体,运用内置的算法和模型生成机制,在三维空间中构建出相应的断层模型,并展示在软件的模型显示区域中。
图13和图14是我根据不同的倾角和断距模拟的三层地层断层模型。
Figure 12. Creating a fault model UI interface
图12.创建断层模型UI界面
Figure 13. Creating a fault model with a tilt angle of 90 degrees
图13. 创建倾角90度的断层模型
Figure 14. Creating a fault model with a tilt angle of 60 degrees
图14. 创建倾角60度的断层模型
5.2. 赋值功能描述
图15中是赋值功能的UI界面,具体操作如下:
(1) 传入形体列表:形体是动态地添加到形体列表的,形体创建后就将形体传入形体列表,同理形体删除的话,形体列表中相应的形体也会删除。将形体列表中的项目传入表格中:当双击形体列表中的项目时候,形体列表中项目就会传入表格中。
(2) 增加属性按钮:当我点击增加属性按钮,会弹出一个对话框,如图16所示,输入自定义的属性名称点击ok确定即可添加属性名称到表格中。
(3) 删除行:当选中表格中的某一行点击删除按钮后即可删除对应的行。
(4) 赋属性值:对于不同的地层赋属性值,填在表格中,点击确定按钮完成赋值。
Figure 15. Adding attribute name UI interface
图15.添加属性名称UI界面
Figure 16. Assignment UI interface
图16. 赋值UI界面
6. 结论
本研究聚焦于三维地质建模软件,成功开发出一款具有独特优势的软件,在解决现有软件操作难题方面取得显著成果。
从软件功能来看,基本形体建立功能提供了多样化的创建方式,涵盖长方体、球体、圆柱体、四面体和圆锥等多种形体,每种形体创建操作简便,且可自由选择颜色,满足了用户构建基础地质模型的需求。同时,通过统一的形体管理类对形体数据进行有效管理,确保了数据的规范性和可操作性。在核心功能上,建立断层模型功能通过简洁的操作流程,仅需用户输入断层名称、选择关联形体、设定倾角和断距,就能快速生成断层模型,大大降低了建模难度,提高了工作效率。赋值功能则实现了对不同地层属性值的灵活赋予,用户可动态管理形体列表和属性,操作直观便捷,为后续地质分析提供了丰富的数据支持。
在软件架构与设计理念方面,采用C++、Qt和VTK相结合的技术方案,充分发挥了各技术的优势,保证了软件的高效运行。以用户为中心的设计理念贯穿始终,从简洁的扁平化界面布局到简化的操作流程,再到针对新手的引导提示信息,都极大地提升了软件的易用性,有效降低了用户的学习成本,使新手也能快速上手操作。
然而,软件目前也存在一些可提升的空间。例如,在处理大规模复杂地质数据时的性能优化,以及进一步拓展功能以满足更多特殊地质建模场景的需求等。未来的研究将围绕这些方向展开,持续改进和完善软件功能,提升软件的性能表现,以更好地服务于地质研究、资源勘探、工程建设等多个领域,推动三维地质建模技术的不断发展。