基于八叉树的复杂矿体块段模型构建方法及系统的制作方法

文档序号:9200998阅读:495来源:国知局
基于八叉树的复杂矿体块段模型构建方法及系统的制作方法
【技术领域】
[0001] 本发明涉及地质体建模技术领域,尤其涉及基于八叉树的复杂矿体块段模型构建 方法及系统。
【背景技术】
[0002] 三维复杂矿体的建模包括三维地质结构建模和三维属性建模两个部分。结构模 型,即表明模型,可以很好地表达复杂矿体的空间形态,但其内部的属性的不均质性,需要 通过属性模型对其内部任意一点的属性进行表达和承载。地质体的属性建模通常是按不同 的精度要求将地质体空间离散为若干个体元,这些体元可为四面体、六面体、棱柱体和多面 体等多种类型,通常将六面体作为体元的属性模型称作为块段模型。
[0003] 大部分矿业软件(如国外的 Vulcan、Datamine、Surpac、MineSight、Micromine 等, 国内的Dimine、QuantyMine、3DMine等)都采用块段模型作为属性模型。属性模型必须以 结构模型的空间边界(即多面体)作为约束,通过判断体元在矿体结构模型的内外关系进 行构建。为了更好地拟合复杂矿体的边界,通常边界上的体元尺寸需要尽可能的小。体元 尺寸越小,体元个数越多,可能达到几百万上千万甚至更多。因此块段模型构建需要高效的 内位关系判断算法,方可在尽可能少点时间内处理如此多的体元。
[0004] 现有技术中,通过OBB树与八叉树节点相交测试优化了采用射线法判断体元与多 面体的内外关系的算法,性能有所提升,但射线与复杂模型求运算交鲁棒性不高,且该算法 对多面体模型质量要求较高,不能有开口、自相交、重复面等问题,而这些问题在复杂矿体 建模过程中容易出现且难以处理。采用Feito-Tor res方法对算法进行了改进,虽然对结 构模型的容错能力有所提升,但性能受到一定影响。采用flood-fill算法,时间复杂度降 低为〇(n),但需要进行三角形与立方体相交运算,且舍弃了八叉树对块段模型的高性能表 达。BSP法内存消耗大,在处理非常复杂的模型时其预处理过程要消耗极大的时间和内存, 甚至可能使系统崩溃。

【发明内容】

[0005] 针对现有技术的缺陷,本发明提供基于八叉树的复杂矿体块段模型构建方法及系 统,将适应于栅格扫描法的规则网格与八叉树模型进行关联,实现基于八叉树的块段模型 高效构建,大大降低了算法的时间复杂度,提高了算法的鲁棒性。
[0006] 第一方面,本发明提供一种基于八叉树的复杂矿体块段模型构建方法,该方法包 括:
[0007] 根据预设的最小体元尺寸,将目标矿体的地质空间划分为多个三维网格,所述网 格行、列、层数分别为N,其中N = 21,1为八叉树的层级数;
[0008] 根据所述三维网格对应的体元与所述地质空间边界的内外关系,通过栅格扫描法 对所述体元进行筛选;
[0009] 根据八叉树节点的层级关系,对筛选后的体元进行合并,形成八叉树模型。
[0010] 优选地,所述根据所述三维网格对应的体元与所述地质空间边界的内外关系,通 过栅格扫描法对所述体元进行筛选,包括:
[0011] 针对所述多个三维网格的每一层,采用通过该层的平面切割所述矿体的表面模 型,获得该层的二维轮廓线;
[0012] 根据该层的网格与所述二维轮廓线的内外关系,采用栅格扫描法对所述网格进行 筛选,获得在所述二维轮廓线内部的网格所对应的体元。
[0013] 优选地,所述根据八叉树节点的层级关系,对筛选后的体元进行合并,形成八叉树 模型,包括:
[0014] 判断八叉树中每个父节点的八个子节点对应的体元是否均位于所述地质空间的 内部,若是,则合并所述八个子节点所对应的体元,直至体元的尺寸等于预设的基本体元尺 寸。
[0015] 优选地,所述根据该层的网格与所述二维轮廓线的内外关系,采用栅格扫描法对 所述网格进行筛选,包括:
[0016] 初始化所有体元为"外"标记;
[0017] 取第k层网格的第j列,获取X = \处平行于y轴的一条射线夂.。
[0018] 获取第k层对应的二维轮廓线上所有线段的两个端点的X轴坐标值(Xl,X2),与Xj 进行比较,若Xl〈X/x2,则所述线段与&7有交点,否则所述线段与< 没有交点;
[0019] 获得所有线段与射线'的交点的y轴坐标值,并将所有y轴坐标值从小到大排 序,得到序列{7 (1,71,72,~7。-1};
[0020] 将y轴坐标序列两两成对,形成多个交点对(yQ,Y1),(y 2, y3),…y。」;
[0021] 判断位于该层的网格的中心点是否位于所述交点对之间,若是,则将所述网格对 应的体元设置为"内"标记;
[0022] 其中沽=0,1,一,^1,」=0,1,一,^1#表示三维网格的总层数及总列数4为 正整数;X 1G^c表示交点的总个数。
[0023] 优选地,所述获得所有线段与射线&;的交点的y轴坐标值,包括:
[0024] 根据公式一获得二维轮廓线上的线段与&的交点坐标中的y轴坐标值:
[0025] y = Yi+(Y2-Yi) X ((X-X1)/ (X2-X1)) 公式一
[0026] 其中,(Xpy1), (x2, y2)为二维轮廓线上的线段的两个端点的坐标值。
[0027] 第二方面,本发明提供了一种基于八叉树的复杂矿体块段模型构建系统,该系统 包括:
[0028] 划分单元,用于根据预设的最小体元尺寸,将目标矿体的地质空间划分为多个三 维网格;
[0029] 筛选单元,用于根据所述三维网格对应的体元与所述地质空间边界的内外关系, 通过栅格扫描法对所述体元进行筛选;
[0030] 合并单元,用于根据八叉树节点的层级关系,对筛选后的体元进行合并,形成八叉 树模型。
[0031] 优选地,所述筛选单元,具体用于:
[0032] 针对所述多个三维网格的每一层,采用通过该层的平面切割所述矿体的表面模 型,获得该层的二维轮廓线;
[0033] 根据该层的网格与所述二维轮廓线的内外关系,采用栅格扫描法对所述网格进行 筛选,获得在所述二维轮廓线内部的网格所对应的体元。
[0034] 优选地,所述合并单元,具体用于:
[0035] 判断八叉树中每个父节点的八个子节点对应的体元是否均位于所述地质空间的 内部,若是,则合并所述八个子节点所对应的体元,直至体元的尺寸等于预设的基本体元尺 寸。
[0036] 优选地,所述筛选单元,具体用于:
[0037] 初始化所有体元为"外"标记;
[0038] 取第k层网格的第j列,获取X = \处平行于y轴的一条射纟JcR。
[0039] 获取第k层对应的二维轮廓线上所有线段的两个端点的X轴坐标值(Xl,X 2),与Xj 进行比较,若Xl〈x/x2,则所述线段与'有交点,否则所述线段与^^没有交点;
[0040] 获得所有线段与射线A的交点的y轴坐标值,并将所有y轴坐标值从小到大排 序,得到序列{7 (1,71,72,~7。-1};
[0041] 将y轴坐标序列两两成对,形成多个交点对(yQ,Y1), (y2, y3),…yj ;
[0042] 判断位于该层的网格的中心点是否位于所述交点对之间,若是,则将所述网格对 应的体元设置为"内"标记;
[0043] 其中沽=0,1,一,^1,]_ = 0,1,一,^1#表示三维网格的总层数及总列数4为 正整数;X1G^c表示交点的总个数。
[0044] 优选地,所述筛选单元,还用于:
[0045] 根据公式一获得二维轮廓线上的线段与&^的交点坐标中的y轴坐标值:
[0046] y = Yi+(Y2-Yi) X ((X-X1)/ (X2-X1)) 公式一
[0047] 其中,(Xpy1), (x2, y2)为二维轮廓线上的线段的两个端点的坐标值。
[0048] 由上述技术方案可知,本发明提供基于八叉树的复杂矿体块段模型构建方法及系 统,通过三维到二维的转换,将体元与多面体内外关系的判断转化为在二维面上进行多边 形区域内外点集的筛选,并结合栅格扫描法,实现三维复杂矿体的块段模型快速构建,大大 降低了算法的时间复杂度,提高了算法的鲁棒性。
【附图说明】
[0049] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1