三维地质建模中八叉树压缩算法的研究
基于八叉树的三维地质剖面生成算法

基于八叉树的三维地质剖面生成算法赵龙;闵世平;代强玲【摘要】Aiming at the high-complexity and low-efficiency of constructing 3D geologic sections, an 3D geological section generating algorithm based on octree is proposed. It is an improvement of the traditional geologic sections generating method, which reduces the time complexity toO(log8(n/M)) in the search process. Besides, it adds boundary constraints for preprocessing, guarantees the correctness and the order of the boundaries, and becomes more robust. The algorithm creates spatial index for triangles on complex 3D geologic body mesh models and searches triangles on geologic sections plane based on octree, then computes the intersection points and traces boundaries of geologic sections. The algorithm constructs 3D geologic sections, and uses gallery guard algorithm to triangulate the traced boundaries. Experimental results prove that this method not only has advantages of high-efficiency and robustness, but also reduces the time complexity from O(n2) to O(nlbn) compared with traditional algorithm.%针对目前构建三维地质剖面算法复杂度高、效率低的问题,提出一种基于八叉树的三维地质剖面生成算法。
八叉树算法原理

八叉树算法原理
八叉树算法是一种用于描述三维空间的树状数据结构,主要用于空间划分和最近邻搜索。
其原理是将一个立方体分割为八个小立方体,然后递归地分割小立方体,每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。
在实际应用中,八叉树主要用于加速空间查询,例如在游戏中用于加速用于可见性判断的视锥裁剪、射线投射、邻近查询以及碰撞检测的粗略阶段等。
通过遍历四/八叉树的节点,如节点相交就继续遍历,如不相交就放弃遍历该子树,最后在叶节点进行形状与点的相交测试,可以剔除许多不必要的点,从而提高算法效率。
面向真三维地学建模的海量虚拟八叉树模型研究

面向真三维地学建模的海量虚拟八叉树模型研究吕广宪;潘懋;吴焕萍;丛威青;吴自兴【期刊名称】《北京大学学报:自然科学版》【年(卷),期】2007(43)4【摘要】高分辨率和海量数据是真三维地学属性建模所面临的关键问题,传统的指针八叉树、线形八叉树及其变种模型在这方面存在不足,存储空间大、处理效率低。
作者提出一种多级线性结构、无指针/无位置码的海量虚拟八叉树模型,采用基于规则分块的多级压缩机制实现了海量属性数据的高效压缩和组织,采用基于快速Morton码分解和数组访问的多级索引方式实现了属性数据的高效查询。
新模型在内存和外存中具有统一的压缩原理、索引结构和查询机制,以数据块为基本单位进行数据交换,给出了具体的实现方法。
应用实例表明,新模型能够有效处理海量属性数据,对于大范围、高精度的真三维地学属性建模及其分析具有重要的应用价值。
【总页数】6页(P496-501)【关键词】真三维;地学建模;海量数据;八叉树;体数据【作者】吕广宪;潘懋;吴焕萍;丛威青;吴自兴【作者单位】北京大学地球与空间科学学院,造山带与地壳演化教育部重点实验室;国家气象中心【正文语种】中文【中图分类】P208;TP391【相关文献】1.面向对象技术在三维虚拟场景建模中的应用研究 [J], 王玉华;杨克俭;曾梅兰2.基于实体模型的三维地学建模研究与实现 [J], 孟耀伟;王山东3.面向体数据的虚拟八叉树模型研究 [J], 吕广宪;潘懋;王占刚;丛威青4.基于"三维动画基础与建模"课程实现三维虚拟校园模型的应用研究 [J], 陈彦伯5.面向高速列车耦合仿真的三维虚拟高速铁路精细化实体环境建模研究 [J], 胡亚因版权原因,仅展示原文概要,查看原文内容请购买。
基于八叉树的三维形体表示的探讨

鬃塑篓凰基于八叉树的三维形体表示的探讨程敏(常州广播电视大学信息工程系;江苏常州213000)[}商要】八又树表示法是一种层次结构的占有空间计数法,由图象处理中的四又树法扩展而来。
占有空间计数法将实体所在空间进行分割。
分割成由立方体组成的网格。
于是。
一个实体可以可以由它所占有的立方体序列来表示。
当分割后的立方体越来越小时,就逐步接近用空问点的集合来表示实体。
饫薯萄硝实体;八爻树;立方体;几何随着计算机动画、三维空间数据场显示等的迅速发展,以及计算杌技术的不断发展,数据获取能力越来越强,所处理模型的数据量也越来越大。
要在计算棚屏幕上构造出三维物体的一幅图象,首先必须在计算机中构造出该物体的模型,这—模型是由一批几何数据及数据之间的拓扑关系来表示的。
这就是造型技术。
有了三维物体的模型,在给定了观察点和观察方向以后,就可以通过一系列的几何变换和投影变换在屏幕上显示出该三维体的二维图象。
在早期的计算机图形生成技术中,三维物体大多是用线框模型来表示的,线框模型由定义—个物体边界的直线和曲线组成,每一条直线和曲线都是单独构造出来的,并不存在面的信息。
采用这种造型技术表示的三维物体常常具有二义性,也易于构造出无效形体,更不能正确表示曲面信息。
要想在计算机内表示、构造一个实体,首先必须明确什么是实体。
V oe l c ker及R equi c ha等基于点集拓扑的理论,认为三维空间中的物体是空间中点的集合。
并且从点集拓扑的领域概念出发,通过定义点集的闭包给出正则集的定义。
—个开集的闭包指的是该开集与其所有边界点的集合的并集,其本身是—个闭集。
组成—个三维物体的点的集合可以分为内部点和边界点两部分。
由内部点构成的点集的闭包就是正则集。
三维空间中点集的正则集就是三维正则形体,也就是有效的实体。
在实体造型系统中,八叉树表示法是一种层次结构的占有空间计数法,由图象处理中的四叉树法扩展而来。
占有空间计数法将实体所在空间进行分割,—般是分割成由立方体组成的网格。
八叉树数据模型在三维地质建模中的应用

八叉树数据模型在三维地质建模中的应用摘要介绍三维地质建模中的八叉树数据模型,并设计一个三维地质建模的实验系统,对这个实验系统实行的算法进行分析,实验分析结果表明实验系统和同类系统比具有很大的优越性。
关键词八叉树;三维地质建模;三维地质体1八叉树数据模型八叉树是一种能很好的表示三维地质体的数据结构,他能做到在压缩数据的同时很好地表达地质体的几何特征,它表现为以分支关系定义的层次结构或树形结构,对地质体的空间分析具有别的存储结构达不到的优势。
一般把三维地质体放在一个2n×2n×2n的立方体内,2n为立方体的边长,立方体与八叉树的根结点相对应;若整个立方体被地质体完全充满,那么这个八叉树就只有一个节点——根结点;否则这个立方体要继续分解成8个相等的子立方体,称为八分体(Octant)。
每个八分体与树根的一个子结点相对应,八分体的边长为根立方体边长的1/2。
对每个八分体,如果为空或为实节点,则该八分体不再分解;若八分体为部分满,则该八分体进一步分解为八个子八分体;如此递归地分解,直到每个子八分体已达到分解的精度,或子八分体均为全满或全空为止。
通过递归分解,最终形成一棵度为8的树,即八叉树(Octree)。
若经过n次分解,n 为八叉树的分辨精度或分辨率,立方体的边长为2n。
整个立方体空间用八叉树的根结点表示;部分满的八分体对应于八叉树的分支结点,称为灰结点(Grey Node);全满或全空的八分体对应于八叉树的叶结点,分别称为黑结点(Black Node)或白结点(White Node)。
结点的层次(Level)从根结点开始定义,根结点为第0层,根结点的所有孩子结点为第1层,第1层结点的所有孩子结点为第2层,依此类推。
八叉树的每个结点由1个编码(code)和8个指向结点的指针(指针号为0-7)组成。
如果code=black,则该结点所表示的空间部分全部为实心,且指针0-7为0,亦即该结点为叶结点。
基于八叉树的三维地质建模系统设计研究

技术创新《微计算机信息》2012年第28卷第10期120元/年邮局订阅号:82-946《现场总线技术应用200例》软件时空基于八叉树的三维地质建模系统设计研究Study on 3D Geo_modeling system design research based On octree(湖南大众传媒职业技术学院)李灿辉LI San-hui摘要:随着三维地质建模在地质领域的不断深入,对地质数据模型的要求就越来越高,但现在的数据模型对内部的属性与结构表达能力不够理想,本文提出采用八叉树数据模型进行三维地质建模系统设计,并设计完成了一个实验系统,对这个实验系统进行了测试和应用,得到了理想的实验结果,把这个实验系统应用于某矿床的岩体与某地层的地层的绘制,结果可以和国际软件接近。
关键词:八叉树,三维地质建模,数字矿山中图分类号:TP 文献标识码:AAbstract:With 3D Geo_modeling in the deepening of the geological field geological data model,to request more and more high,but now the data model of the structure and properties of internal ability is not ideal,this paper puts forward the octree data model for 3D Geo_modeling system design,and design completed an experiment system,the experiment system for the test and application,get a satisfactory experiment result,put this experiment system used in a deposit with a rock strata and the drawing of the formation and the results can be and international software close.Key Words:3D Geologic_modeling;Linear octree;Digital mine 文章编号:1008-0570(2012)10-0488-03随着数字矿山在国内逐步推进,矿业建模软件的有力推广,许多矿山都建立了矿山数字化三维模型,为地质勘探和矿山开采提供了技术支撑。
3dtile 八叉树原理

3dtile 八叉树原理3D Tiles八叉树原理在现代的虚拟现实和增强现实技术中,3D Tiles八叉树是一种重要的数据结构,用于有效地组织和管理大规模的三维地理数据。
它的设计灵感来自于计算机图形学中的八叉树数据结构,通过将空间划分为八个均匀分布的子节点来实现对数据的层次化组织和查询。
3D Tiles八叉树的原理是基于空间分割的概念。
首先,整个地球表面被划分为一个根节点,这个节点代表了整个地球。
然后,这个根节点被分割成八个子节点,每个子节点代表了地球表面的一个相对较小的区域。
这个过程可以递归地进行下去,每个子节点都可以再次被划分为八个更小的子节点,直到达到所需的精度或终止条件。
在每个节点上存储了与该节点对应的区域内的三维地理数据。
这些数据可以是地形、建筑物、植被等地理信息的模型。
通过使用八叉树的层次结构,可以将这些数据按照空间关系进行组织,并且可以非常高效地进行查询和渲染。
八叉树的每个节点都有一个唯一的索引,这个索引可以用于快速访问和查询相应的数据。
例如,当用户在虚拟现实环境中查看地球表面的某个区域时,系统可以根据用户的视点和视野范围来确定所需的数据,并只加载和渲染这些数据。
这样就可以大大提高系统的性能和用户体验。
除了空间分割之外,3D Tiles八叉树还具有自适应细化的特性。
这意味着在需要更高精度的区域,可以进一步细分节点,以提供更准确的地理数据。
而在不需要高精度的区域,可以合并相邻的节点,以减少数据的复杂性和存储空间的占用。
总结一下,3D Tiles八叉树是一种用于组织和管理大规模三维地理数据的数据结构。
它通过将空间划分为八个子节点来实现数据的层次化组织和查询。
八叉树的每个节点存储了与该节点对应的区域内的地理数据,并且具有唯一的索引。
通过使用八叉树,系统可以高效地加载、渲染和查询三维地理数据,从而提供更好的虚拟现实和增强现实体验。
希望通过这篇文章,读者能够了解3D Tiles八叉树的原理和应用,并对其在虚拟现实和增强现实领域的重要性有所认识。
三维实体的表示方法八叉树 -回复

三维实体的表示方法八叉树-回复什么是八叉树?八叉树(Octree)是一种用于空间分区和数据存储的树状结构。
它将三维空间划分为一系列的八叉堆立方体(octant),每个八叉堆立方体又可以继续划分为八个子八叉堆立方体,如此循环,直到达到预设的终止条件。
八叉树在计算机图形学、虚拟现实、物理模拟等领域得到广泛应用,能够高效地描述和操作三维实体。
为什么需要使用八叉树来表示三维实体?在计算机图形学和物理模拟中,我们常常需要处理大量的三维实体。
使用传统的数据结构(如数组或网格)来存储和操作实体会消耗大量的内存和计算资源。
而使用八叉树可以将空间划分为小的八叉堆立方体,只需要存储其中有实体存在的八叉堆立方体,能够大大节省存储空间。
此外,八叉树能够提供高效的查询功能,快速地找到所需的实体,特别适用于需要实时交互和动态更新的场景。
八叉树的构建过程是怎样的?首先,我们将三维空间划分为一个大的八叉堆立方体,称为根节点。
根节点可以进一步划分为八个子堆立方体,每个子堆立方体称为一个子节点。
每个子节点又可以继续划分为八个更小的子节点,直到达到预设的终止条件。
终止条件可以是达到一定的深度,或者是某个八叉堆立方体内包含的实体数量小于等于一个阈值。
在每次划分的过程中,需要判断当前八叉堆立方体内的实体是否分布在子节点中。
如果是,则将实体分别添加到对应的子节点中;如果不是,则保持在当前八叉堆立方体内。
这样一直进行下去,直到所有的实体都被添加到合适的叶子节点或者根节点。
如何查询八叉树中的实体?为了查询位于某个特定区域内的实体,我们需要从根节点开始,判断当前八叉堆立方体是否与目标查询区域相交。
如果相交,则继续判断当前八叉堆立方体的子节点是否与目标查询区域相交,如果相交,则递归地向下搜索;如果不相交,则停止搜索。
这样可以快速定位到包含目标查询区域的叶子节点,从而获取其中的实体。
在实际查询中,有一些优化技巧可以提高查询效率。
例如,可以使用边界盒(bounding box)来快速判断八叉堆立方体与查询区域的相交性,避免进行冗余的计算。
用于建立三维GIS的八叉树编码压缩算法

用于建立三维GIS的八叉树编码压缩算法
曹彤;刘臻
【期刊名称】《中国图象图形学报》
【年(卷),期】2002(007)001
【摘要】复杂的空间数据结构在三维GIS领域中占有突出的地位,它直接关系到GIS的功能和效率.为了有效地进行三维GIS大量数据的存储和管理,重点讨论了三维GIS栅格数据结构中的八叉树编码压缩技术.由于Morton码值的排序是实现八叉树编码压缩的基础,为此,根据Morton码排序的特殊性,提出了采用时间复杂度为O(n)的计数排序算法,使排序速度大为提高,在此基础上进行压缩处理,并对算法的时间及空间复杂度进行了分析.在PC机上进行的模拟实验结果表明,在目标复杂度一定的前提下,八叉树存储数据占用空间小(当分割阶次为9阶时,八叉树存储量只占栅格存储量的4.32%),是一种较为理想的描述复杂海量地理空间数据的压缩结构.【总页数】5页(P50-54)
【作者】曹彤;刘臻
【作者单位】北京联合大学应用文理学院信息科学系,北京,100083;北京师范大学计算中心,北京,100875
【正文语种】中文
【中图分类】TN919.81
【相关文献】
1.基于建立3DGIS的八叉树压缩算法的研究与改进 [J], 胡小红;刘奕伶
2.三维地质建模中八叉树压缩算法的研究 [J], 程炼娟
3.基于三维点云数据的线性八叉树编码压缩算法 [J], 权毓舒;何明一
4.三维GIS中的八叉树模型可视化研究 --以矿体信息为例 [J], 曹彤;逯燕玲;张辉
5.三维GIS的线性八叉树数据结构研究 [J], 马智民;陈浩;王金玲
因版权原因,仅展示原文概要,查看原文内容请购买。
基于建立3DGIS的八叉树压缩算法的研究与改进

,
t te ,di us d hJs xt sc se th d a e at st ct re f t 3 G[ d i ar ru u o he D S gr l ne Oct e ode re c cO rcs ng t hni Q, a i mp si ec qu nd n
0 引言
同,则不再分 割,否则 继续 将其分成 8 更小 的立方体 。按 个
随着计算机 技术、空 间技术和 现代信息基 础设施 的发 展 ,G S I 在经济信息化进 程 小也得 到了快速的发展 ,从二维 向 2 5维 、三维发展 。但 目前大 多还 是二维数据表示及 2 5 . . 维景 观模 型立体表示,使得 G S I 在资源 勘探 、地质模型 、城 市建 设等领域 的应用受到很 大限制, 因而这些部 门迫切需 要
著提 高。 关 键 字 : 3 GS: 又 树: 数 据 压 缩: 压 缩 算 法 DI 八 中 图分 类 号 :P3 .,6 12 6 11I3 . D 文 献 标 识 码 :A 文 章 编 号 :1 7 — 7 2 (D 87 D2 — 3 6 1 4 9 一 2 0 )~ 0 0 0
一
此规则~直分割到不再需要分 割或达到规定的层 次为止( 如 图一所示 ) 。由于此方法需要重复 检测小立方体 ,因而运算 速度较慢 。 于是人们提 出了 自下 而上的合并方 法来改进运算 速度 。 该方法是从第一个小立方体 单元开始 , 按一定 的顺序 进行检测, 如果每相邻 8 个栅格 的属性 值相同, 则进行 合并, 逐次往上递归,直到整个 目标检 测完毕。 常规八又树 除了要
体素模型八叉树压缩公式

体素模型八叉树压缩公式体素模型八叉树压缩公式是一种用于对体素模型进行压缩的数学表达式。
体素模型是一种用于表示三维空间中对象的数据结构,它将空间划分为一个个小立方体单元,每个单元表示一个体素。
而八叉树则是一种树结构,将空间划分为八个子空间,每个子空间对应一个子节点。
在体素模型中,每个体素可以表示为一个二进制值,用于表示是否存在对象。
在实际应用中,体素模型往往需要存储大量的数据,这就需要对其进行压缩以减少存储空间。
体素模型八叉树压缩公式的核心思想是将体素模型划分为八个子空间,并对每个子空间进行递归压缩。
具体的压缩公式如下所示:1. 如果当前节点所代表的体素为实体体素,则将其子节点设为叶子节点,值为1;2. 如果当前节点所代表的体素为空白体素,则将其子节点设为叶子节点,值为0;3. 如果当前节点所代表的体素为混合体素,则将其子节点设为内部节点,并递归压缩子空间。
通过上述步骤,可以将原始体素模型逐层压缩成八叉树结构。
压缩后的体素模型不仅可以大大减少存储空间,还可以加快对体素模型的操作速度。
体素模型八叉树压缩公式的优势在于其高效的压缩能力和快速的访问速度。
通过将体素模型划分为八个子空间,并对每个子空间进行递归压缩,可以将原始体素模型的存储空间降低到原始的1/8。
体素模型八叉树压缩公式还具有较好的适应性和扩展性。
通过调整压缩公式中的参数,可以实现不同精度的压缩效果。
同时,可以根据需要对压缩后的体素模型进行进一步的细分和优化,以满足不同应用场景的需求。
体素模型八叉树压缩公式是一种用于对体素模型进行高效压缩的数学表达式。
通过将体素模型划分为八个子空间,并对每个子空间进行递归压缩,可以将原始体素模型的存储空间大大降低,并提高对体素模型的操作效率。
体素模型八叉树压缩公式具有较好的适应性和扩展性,可以根据需要进行调整和优化。
在实际应用中,体素模型八叉树压缩公式可以广泛应用于计算机图形学、虚拟现实、医学图像处理等领域,为相关应用提供高效的数据存储和处理方法。
基于三维点云数据的线性八叉树编码压缩算法

基于三维点云数据的线性八叉树编码压缩算法
权毓舒;何明一
【期刊名称】《计算机应用研究》
【年(卷),期】2005(022)008
【摘要】八叉树结构是三维数据建模中研究和应用最为广泛的栅格数据结构.由于三维扫描的点云数据是基于物体表面的,其空间离散程度远大于三维实体数据,一般的线性八叉树编码压缩方法都是基于实体数据的,不能直接应用于三维点云数据.提出的改进的线性八叉树地址码(Morton码)的方法可大大提高它的连续性,有效降低八叉树的深度,提高数据的压缩比,改进后的Morton码还可以应用多种编码压缩算法进一步压缩.
【总页数】3页(P70-71,129)
【作者】权毓舒;何明一
【作者单位】西北工业大学,电子信息学院,陕西,西安,710072;西北工业大学,电子信息学院,陕西,西安,710072
【正文语种】中文
【中图分类】TP301.6
【相关文献】
1.基于八叉树编码的点云数据精简方法 [J], 邵正伟;席平
2.用于建立三维GIS的八叉树编码压缩算法 [J], 曹彤;刘臻
3.一种八叉树和三维R树集成的激光点云数据管理方法 [J], 龚俊;柯胜男;朱庆;钟
若飞
4.基于八叉树模型的三维点云数据预处理研究 [J], 罗才华;周燕
5.基于线性八叉树的点云数据存贮与索引 [J], 韩慧民;郑少开
因版权原因,仅展示原文概要,查看原文内容请购买。
基于改进的八叉树算法三维地质建模技术研究

b d e ,t e pa rp o o e n o te -ba e o i s h pe r p s d a cr e s d muli c l e me tto g rt t—s ae s g na in a o i l hm o c n tu tt e t o sr c hre—di nso l e ・ me ina g o
lgc lmo e .Ocr e a e u d vso lo i m e s t e r q i me t o l — c l l si c t n o J C o ia d 1 te —b s d s b iiin ag r h me t h e u r t e n s f mu t s a e c a sf a i fOB E T i i o
r t o l k e engooi l bet,w i i b s o esai nl i iuai eut so a t iy f i sbt e elg a ojc e n w c s hc ld ai fr h pt l a s .S l o rsl hw t t h ha s t a a y s m tn s h e
基于八叉树遍历的几何压缩

基于八叉树遍历的几何压缩三维模型的压缩是当前计算机图形学的研究热点之一。
随着应用需求的增长,三维模型的规模和复杂度急剧增长,这给模型的存储和在有限带宽的网络上传输带来了很大的困难。
因此,研究空间需求小、适合于计算机网络传输的三维模型的表示方法具有十分重要的意义。
三维模型的压缩主要包括拓扑压缩和几何压缩。
由于压缩数据中的大部分是几何压缩数据,因此高效的几何压缩方法对于提高模型的压缩效率有很重要的作用。
针对几何压缩,本文首先对几何压缩技术的发展及其现状进行了综述;然后提出了一种新的渐进几何压缩方法,它比目前国际上最好的渐进几何压缩方法有更高的压缩效率:最后对进一步的工作进行了探讨。
第二章综述几何压缩技术。
首先介绍几何压缩的基本流程和几种几何压缩方法的分类原则,然后将几何压缩技术分为基础压缩方法和经过模型变换的压缩方法两大类,分别对这两种方法进行详细的介绍,并讨论各个方法的特点,最后结合我们自身的工作认识对几何压缩技术进行小结和展望。
第三章介绍了我们提出的一种新几何压缩算法:基于八叉树遍历的几何压缩。
本章详细介绍了新算法的思路、实现,以及实验结果和贡献。
我们的算法通过连续细分包含顶点的节点构造自适应八叉树,然后遍历八叉树生成描述顶点分布的三个比特流,分别指示:一个节点是否包含顶点,一个节点是否只包含一个顶点,以及在一个节点只包含一个顶点的情况下,它哪个子节点包含这个顶点。
通过这样三个比特流隐含表示出顶点在空间的坐标位置。
最后使用算术编码器对三个比特流进行编码压缩。
与当前最好的渐进压缩器相比,我们构造的三个数据流能够显著的减少表达顶点坐标的数据量。
并且,其中两个比特流中的‘0/1’出现的概率有一定聚集趋势,这个特点使得它们适合于算术编码器发挥作用,以取得高压缩效率。
在几何编码阶段,与目前国际上最好的渐进几何压缩方法相比,新方法能生成更紧凑的表达几何数据的比特流。
这为下一步研究高效的压缩方法打下了良好的基础。
八叉树在三维场景建模和路径规划中的应用

Ab t a t T e moi n c a a trs c f h r c e s r sab e k h o g on ,h i e e t p l ai n o s r c : h t h r c e i i so a a tr k a r a t r u h p i t t e df r n pi t f o t c wo a c o o t e w r e i n d i n mae u o t e e aie s s m e p c iey: c e s d t i l y s e e c r e e d sg e n a i t d a t ma i g n r t y t r s e t l o  ̄ e i u e o smp i c n e c v e v s f
第2 7卷 第 3期 21 0 2年 6月
郑 州 轻 工 业 学 院 学 报 【自 然 科 学 版 )
JU N L F H N Z O NV RI F ! O R A E GH U IES Y 望 OZ U TO u ! ! ! ! !!
V0 . 7 No 3 12 Fra bibliotek . A p lc to fo te n 3D c n o ei g a d p t p a n n p ia i n o cr e i s e e m d ln n a h l n i g
HUANG Yo g i , S S a ge n. . i . U h n —n ( . o eefC m . n o . n.Z eghuU w o ih I .Z eghu4 00 ,hn ; 1 C lg o p adC r E g ,hnzo n . g t n ,hnzo 50 2 C i l o n fL d a
八叉树三维数据结构及示例程序

八叉树三维数据结构(一)基本原理用八叉树来表示三维形体,并研究在这种表示下的各种操作及应用是在进入80年代后才比较全面地开展起来的。
这种方法,既可以看成是四叉树方法在三维空间的推广,也可以认为是用三维体素阵列表示形体方法的一种改进。
八叉树的逻辑结构如下:假设要表示的形体V可以放在一个充分大的正方体C内,C的边长为2n,形体V C,它的八叉树可以用以下的递归方法来定义:八叉树的每个节点与C的一个子立方体对应,树根与C本身相对应,如果V=C,那么V的八叉树仅有树根,如果V≠C,则将C等分为八个子立方体,每个子立方体与树根的一个子节点相对应。
只要某个子立方体不是完全空白或完全为V所占据,就要被八等分(图2-5-1),从而对应的节点也就有了八个子节点。
这样的递归判断、分割一直要进行到节点所对应的立方体或是完全空白,或是完全为V占据,或是其大小已是预先定义的体素大小,并且对它与V之交作一定的“舍入”,使体素或认为是空白的,或认为是V占据的。
如此所生成的八叉树上的节点可分为三类:灰节点,它对应的立方体部分地为V所占据;白节点,它所对应的立方体中无V的内容;黑节点,它所对应的立方体全为V所占据。
后两类又称为叶结点。
形体V关于C的八叉树的逻辑结构是这样的:它是一颗树,其上的节点要么是叶节点,要么就是有八个子节点的灰节点。
根节点与C相对应,其它节点与C的某个子立方体相对应。
因为八叉树的结构与四叉树的结构是如此的相似,所以八叉树的存贮结构方式可以完全沿用四叉树的有关方法。
因而,根据不同的存贮方式,八叉树也可以分别称为常规的、线性的、一对八的八叉树等等。
另外,由于这种方法充分利用了形体在空上的相关性,因此,一般来说,它所占用的存贮空间要比三维体素阵列的少。
但是实际上它还是使用了相当多的存贮,这并不是八叉树的主要优点。
这一方法的主要优点在于可以非常方便地实现有广泛用途的集合运算(例如可以求两个物体的并、交、差等运算),而这些恰是其它表示方法比较难以处理或者需要耗费许多计算资源的地方。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学 术论 坛 ・
三维地质建模中八叉树压缩算法的研究
程 炼 娟
( 南 大 众 传 媒 职 业 技 术 学 院 网 络 传 媒 系 湖
湖南长 沙
4 1 O 1 ) 0O
[ 摘 要 ] 由于 Mo t n码 值 的排 序 是 实现 八叉 树 编 码 压 缩 的基 础 , 此 , 据 Mo t n码 排序 的特 殊 性 , 出 了采 用时 间复 杂 度为 0 ro 为 根 ro 提 ( 的 计 数 排 序 算法 , 排 序 速 度 大 为 提 高 , n) 使 在此 基 础 上 进 行 压 缩 处 理 , 对 算 法 的时 间及 空 间复 杂度 进行 了分 析 。 并 [ 键 词 】 叉 树 计 数 排 序 压 缩 算 法 关 八 , [ 图 分 类 号】 中 TN9 9 1 [ 献 标 识 码 】 文 A [ 章 编 号 】0 7 41 (0l )0 —0 7 一O 文 1 0 -9 6 2 0 6 1 0 l
2编码排 序及 其时间复 杂度分析
将栅 格 坐 标变 换成 Mo t n编码 后 ,得 ro 到 的 是 一 组 无 序 的 Mo t n编 码 记 录 , 包 括 ro M ot n代 码 和 属 性 数 据 。 首 先 应 对 M o tn ro ro
定 的 次 序 ( X,y,Z方 向) 按 ,读 入 内 存 ra Daai中 ; e d t[ ] () 2通过 查表( ro = mo Ta [ ]+ Mo tn r b X ( r by <<1+( r b z<<2) mo Ta [l ) mo Ta [] )将栅 格 坐 标 转 换 成 M ot n编 码 Qi 这 时 得 到 的 是 ro , 组 无 序 的 M O t n编 码 记 录 ; ro () 3 为排 序 后 的 MO t n编码 记 录开 辟 ro 块 新 的 内 存 wrtDaaQi, 用 于 存 放 属 ie t [ 】 性 值 , 将 与 栅 格 坐 标 对 应 的 属 性 值 r a Daai 予 排 序 后 的 M o t n编 码 记 录 e d t [赋 ] ro wrtD t [ 】 i a a Qi,即 w r e t[ ] e d t e i DaaQi t =ra Daa 【。 i ] 在具 体 的 操 作 中 ,假 设 计 算机 配 置 ( 主 要 指 内 存 ) 需 读 盘 就 能 支 持 的分 割 阶 次 不 是 m 阶 ,在栅 格 化 处理 对 象 时 ,如果 要求 的 精度 大 于 m 阶( 需要 m+l阶 ) 如 ,则 可 先 将 对 象 划 分 为 m 阶 大 小 的 8个 立 方 体 , 同 时 对 这 8个 立 方 体 分 别 进 行 栅 格 化 , 然 后 按 顺 序 对 各 块 进 行 M o t n码 转 换 、 排 序 、 ro 合 并 和 生 成 八 叉 树 。 因 为 计 数 排 序 的 实 质 是 以 Qi编 码 作 为 排 序 后 的 属 性 数 组 的 下 标 , 所 以 实 现 了 M o t n编 码 的 自 然 排 序 , ro 其 时 间 复 杂 度 为 O( ) 表 3 1为 快 速 排 序 n。 . 与 计数 排 序 算 法 的 时 间 对 比 ,7阶 时 ,比 快 速排 序 法 要 节 省 3 2倍 的 时 间 。
O 引 言
三 维 地 质 建 模 的 最 大 的 不 利 是 要 存 储 的 数 据 量 是 海 量 的 , 为 了 实 体 建 模 需 要 的 存 储 空 间 , 使 用 性 能 优 良 的 数 据 结 构 就 是 当 务 之 急 , 其 关 键 问 题 是 空 间 数 据 的 算 法 及 其 空 间 数 据 的 组 织 。 由 于 八 叉 树 特 别 适
比 特 位 运 算 法 , 即 先 分 别 对 二 进 翩 表 示 的 K、 J I 、 ,从 高 位 到 低 位 依 次 移 入 八 叉 树 编 码 的 地 址 , 最 后 从 编 码 地 址 中 , 取 出 八 叉 树 的 编 码 ,这 样 , 其 编 码 速 度 将 有 所 提 高 。
效率越高 。
4八叉树 存储空间复杂度分析
用 八 叉 树 存 储 矿 体 信 息 所 占 用 的 空 间 主 要 与 矿 体 的 尺 寸 、 复 杂 程 度 及 采 用 的 空 间 分 辨 率 有 关 。 本 次 工 作 对 具 有 5级 属 性 的 矿 体 进 行 了 模 拟 实 验 , 分 级 越 粗 , 八 叉 树 存 储 占 用 的 空 间 越 小 , 一 般 具 有 4~5级 属 性 的 矿 体 分 级 已 够 用 。 由 实 验 结 果 可 知 : ① 低 阶 时 , 由 于 立 方 体 的 划 分 较 少 ,立 方 体 较 大 , 属 性 复 杂 , 因 此 各 立 方 体 属 性 相 同 的 可 能 性 小 , 能 压 缩 的 的 立 方 体 也 相 对 要 少 , 这 就 会 出 现 八 叉 树 存 储 占 用 空 间 比栅 格存 储 占用 空 间还 多 的情 况 ,l ~4阶 数 据 的 存 储 空 间 可 见 , 两 种 方 法 实 际 占 用 的 存 储 空 间 都 很 小 , 区 别 不 大 。 ②从 5阶 开 始 ,使 用 八 叉 树 结 构 存 储 数 据 占 用 空 间 的 压 缩 比 呈 递 增 状 况 , 比 使 用 栅 格 结 构 存 储 数 据 所 占 用 的 空 间 具 有 明 显 的 优 势 , 当 9阶 时 , 八 叉 树 数 据 存 储 量 只 占 栅 格 数 据 存 储 量 的 4. 2 。 这 体 现 了 使 用 八 叉 树 存 3% 储 数 据 占 用 空 间 小 的 特 性 ③ 在 实 际 应 用 中 ,特 别 是 对 于 地 学 中 的 复 杂 地 物 而吉 , 往 往 为 了 满 足 精 度 要 求 需 要 一 定 的 分 解 精 度 , 2阶 分 割 , 只 表 达 出 两 种 矿 体 属 性 ;3 阶 表 达 出 3种 属 性 ;4阶 虽 可 表 达 出 矿 体 内 部 的 4种 属 性 , 但 边 缘 呈 锯 齿 状 ;从 5阶 开 始 , 表 达 的 矿 体 边 缘 逐 步 趋 于 平 滑 , 由
一 一 一
进 行 一 轮 压 缩 之 后 , 八 叉 树 就 包 含 有 n级 和 n 级 节 点 , 再 对 L v l n 的 所 有 节 —l e e 为 一1 点 进 行 同 样 上 述 操 作 ,将 得 到 n 2级 节 点 , - 如 此 递 归 , 压 缩 过 程 一 直 进 行 到 根 节 点 或 不 能 再 进 行 合 并 操 作 为 止 。 对 于 一 个 经 过 n次 剖 分 的 立 方 体 最 多 需 进 行 n轮 压 缩 运 算 ,最 终 八 叉 树 所 剩 节 点 数 目越 少 , 压 缩
合 于 描 述 地 学 中 的 复 杂 地 物 现 象 , 近 些 年 来 被 广 泛 地 应 用 于 地 学 空 间 分 析 研 。 因 此 对 八 叉 树 的 编 码 的 压 缩 算 法 的 研 究 也 就 很 有必 要 。
1计 算 编 码
存 放 八 叉 树 编 码 常 用 的 地 址 码 是 M o tn码 【 6 7 定 义 为 :Q=M o tn ro 7 7 】, ro ( n,x,y, z , 式 中 X,Y,z分 别 表 示 X、 ) Y、 Z 方 向 的 编 码 , n为 树 的 深 度 ,Q 为 线 性 编 码 。 实 现 Mo t n编 码 的 最 普 通 的 方 法 ro 是 求 余 数 法 。 由 于 该 方 法 运 行 速 度 慢 , 特 别 当 n较 大 时 , 因 此 后 来 有 学 者 提 出 采 用