Cesium中实现地质体裁切

地质体剖切

地质体模型是指通过三维地质建模技术,将地质体的空间形态、属性及其内部结构在三维空间中进行数字化表示的一种模型。这种模型不仅能够真实反映地质体的形态和特征,还能为地质分析、资源勘探、环境保护等领域提供重要的技术支持。

地质体剖切是地质学研究的基础性方法之一,其核心是通过切割地质体,生成垂直剖面图,直观展示地层、岩体、构造、矿产等要素的分布情况。这种方法的主要作用包括:

  1. 地层层序分析:通过剖切图可以清晰地展示地层的顺序、岩性、厚度和产状等特征,为地层对比和地质年代研究提供依据。
  2. 构造特征分析:剖切能够直观反映褶皱、断层、节理等构造现象的形态、规模和产状,为构造分析和地质演化研究提供重要参考。
  3. 矿产资源分析:剖切图可以揭示矿体的产状、规模和品位等信息,为矿产勘探和开采提供关键指导。
  4. 工程地质评价:在基础设施建设中,剖切分析有助于评估地基稳定性,优化工程设计。

地质体剖切的实现思路

地质体剖切其实有很多种思路,比如类似Three.js的模板测试方式,或者超图的几何体裁切的方式

我们这里采用类似超图的几何体裁切的方式来计算裁切面。

地质体模型一般都是由三角面组成的三维模型,而地质体剖切实际上就是计算一组线段与地质体模型的切面。

我们尝试将这个问题简化,有多简化呢?就简化成一个个三角面与一条条线段相切的计算吧。

计算一个三角面与一条线段的切线

对于二维平面来说,一个三角面和一条线段相切,如果不考虑线段和三角形边界重合(两个浮点数如果不是刻意为之是很难相等的)的话,会有以下四种情况

三角形与线段相交情况

  1. 如果线段不和三角形任意一条边相交,则不再需要进行其余操作。
  2. 如果线段与三角形的两条边相交,则对于这个三角形来说,切面的一条边是两个切点组成的线段
  3. 如果线段与三角形一条边相交,且起点在三角形内,则对于这个三角形来说,切面的一条边是切点与起点组成的线段
  4. 如果线段与三角形一条边相交,且末尾点在三角形内,则对于这个三角形来说,切面的一条边是切点与末尾点组成的线段

以上这四种情况是针对二维情况下的,实际情况下我们面对的是三维的三角面,因此我们需要将二维的切面边还原成三维的。

这里对于切点来说可以利用对应边的两个点计算出来三维坐标。

而对于在三角形内的点来说,则可以利用三角形重心坐标来计算三维坐标。

修整所有线段的连接顺序

将地质体的所有三角面和所有线段进行相切计算,我们能够获取一组线段。

但是这组线段的排列顺序一般来说是混乱的,因此我们需要重新调整这些线段的排列顺序。

我的做法是将两条有公共点的线段进行相连,直到所有线段首尾相连完成即可去掉重复点

分层计算切面

上面计算切面的方法是针对单个模型来进行计算的。

地质体一般是多层结构,对于多层的地质体,我们需要一层一层单独计算切面,最后将所有切面绘制出来实现整个地质体的切面计算。

效果展示


Cesium中实现地质体裁切
https://www.liaomz.top/2025/05/26/cesium-zhong-shi-xian-di-zhi-ti-cai-qie/
作者
发布于
2025年5月26日
许可协议