当前位置:首页 » 操作系统 » 八叉树算法

八叉树算法

发布时间: 2022-05-28 09:50:58

Ⅰ  复杂曲面上使用单纯形实现三维两点射线追踪

在GOCAD项目的框架中,已经提出用三角形来模拟极复杂地质界面。这种对三角形面片的选择是基于任何曲面都可以分解成平面或曲线三角形这一事实而决定的,本节中将展示这种分解可以非常高效的用于解决两点射线追踪问题。射线路径的确定基于费马原理——对于给定的发射点、接收点和反射面,要使每条射线的旅行时最小。最小化过程使用曲面三角剖分的单纯形方法迭代来实现。初始射线可以由试射算法、射线偏移算法或弯曲算法来提供。此外,基于GOCAD软件的几何信息数据可以引入动力学信号,为此,用边界曲面定义三维空间的均匀域,并且发展了一种基于有限状态的自动化新算法,用以确定三维空间中任何给定点的对应区域。

有些文献(G.Farin,1988;J.L.Guiziou,A.Haas,1988)提出了几种方法用于解决三维两点射线追踪问题。通常这些方法可以给出满意的结果,但当存在复杂非规则地质体时,如正断层、逆断层、盐丘等,它们的速度极慢并且往往不能适应这些不均匀体。

本节中,介绍一种基于GOCAD几何数据结构的新方法。不同物性的交界面(层位)由数据插值得到的三角剖分曲面代表(简写作“T-surface”)。实际工作中,用两步插值过程来构造T-surface:

(1)第一步插值由DSI方法(J.L.Mallet,1989,本书第三章)实现,其目的在于计算三角形顶点的位置使得T-surface与所有有效数据吻合。

(2)第二步插值由Bezier或Gregory方法(G.Farin,1988;J.A.Gregory,1980)实现,使得用平滑曲线三角形近似平面三角形。

与基于Bezier,样条或Nurbs的经典方法相比,Gregory的方法允许考虑:

·当前所有有效的不均匀数据(测井数据,地震数据,斜尺数据);

·某些不精确的数据类型;

·复杂拓扑结构的层位,例如可以考虑一个与盐丘相交的地层。

GOCAD项目的目的不仅在于提供一个有效的复杂地质界面建模工具,它还可以被用于与这些曲面有关的地球物理应用,如射线追踪、偏移、层析……

5.2.1层位的几何建模和地质意义

下面给出适合于射线追踪的界面(层位)表示法要点。在GOCAD项目中,不同介质的交界面用由无序的三角形面元集合构成的界面图形来表示。面元集合的节点为三角形顶点,节点位置由DSI算法得到的。

假设所有层位都包含在一个代表研究区域D的平行面元体中。层{H1,H2,…,Hm}将D分割成一个子区域集合{D1,D2,…,Dm}对应于独立的均匀介质,为了定义这些区域,我们将界面定向,也就是每层位有两面(正面和负面)。使用GOCAD提供的图形工具,这种定向可以通过交互的方法实现,这样每个区域可以用一个有向界面的子集来定义。例如,一个区域Dj可以由一系列对应于其边界层位的一些面

来定义。对于给定的三维点P,发展了一种基于有限状态,能够自动返回P所属区域ID号的算法。通过对区域的这种定义,可以很容易的定义介质连续性,而这对被穿过的一系列界面所定义的射线的特征研究来说是非常重要的。

注意到,每个层位都至少分割两种介质。对于我们感兴趣弹性波传播来说,一个介质平滑变化的区域可以用一个空间函数集合来描述,刻划其弹性性质。下面假设每种介质速度为常数。这样在每一区域内射线为一直线并且根据斯涅尔定理在界面处不连续的改变方向。

5.2.2射线追踪问题

设ρ(E,R,Hr)为连接发射点E到接收点R并在层位Hr上反射的一条射线。假设ρ(E,R,Hr)为由对应于地质模型中ρ(E,R,Hr)与层位Hi的交点的n个接触点Ii组成的多边形线:

地质模型计算机辅助设计原理与应用

记σ(E,R,Hr)为对应射线与模型的接触点Ii的(n个)层位Hi系列,称为ρ(E,R,Hr)的“页码”:

地质模型计算机辅助设计原理与应用

根据ρ(E,R,Hr)的定义可知,Hr至少有一次包括于σ(E,R,Hr)中,并且在复杂的地质条件下,层位Hi可以几次出现在σ(E,R,Hr)中。例如,盐丘、透镜体或逆断层等。

对应于射线路径ρ=ρ(E,R,Hr)的旅行时T(ρ)由下式定义:

地质模型计算机辅助设计原理与应用

这里Vi为射线在包含线段IiIi+1的地质区域Di中的速度,在被线段IiIi+1穿过区域Di(地层)中速度Vi是一常量,并且只要确定IiIi+1的中点所属的区域Di就可以确定这一速度值。

可以看到,T(ρ)是点{I0,…,Ii,…,In}的函数,根据费马原理当且仅当ρ(E,R,Hr)为真射线时,这些点对应于T(ρ)的一个局部极值。我们将应用这一性质来求取逼近一个给定初始近似值ρ0(E,R,Hr)的射线ρ(E,R,Hr)。

ρ(E,R,Hr)确定:设ρk(E,R,Hr)为在第k步时ρ(E,R,Hr)的一个近似值,并且让σk(E,R,Hr)为其对应的“页码”:

地质模型计算机辅助设计原理与应用

如果ρk(E,R,Hr)的所有点除Iik外都是固定的,而Iik可以在相应的层位Hik上移动,那么对应于ρk(E,R,Hr)的旅行时可这样表示:

地质模型计算机辅助设计原理与应用

在第(k+1)步上,如果考虑费马原理,可以移动位于Hik的点Iik

,并且使T(Iik|ρk)是最小的,这样得到一个更好的近似值ρk+1=ρk+1(E,R,Hr)。由上一个近似值ρk(E,R,Hr)导出的射线ρk+1(E,R,Hr)有如下形式:

地质模型计算机辅助设计原理与应用

上面表达式中

的性质将在下节中精确描述。

动态页码。对比文献(V.Peireyra,1988;J.L.Guiziou,A.Haas,1988)中提到的一般方法,这里提出的算法允许“页码”σk(E,R,Hr)从第k步到第(k+1)步时改变。这种“页码”的变化由下面的规则来控制:

规则1。层位

一般来说是相同于Hik的,除非

位于Hik的边界,对于最后一种情况建议在下面两种描述中选取其中之一:

(1)如果

与另一曲面H的一个连接点,则让

。换句话说,就是曲面

的改变。有赖于基于几何数据的GOCAD结构,可以很容易实现这一点。

(2)如果

不是

与另一曲面H的连接点,那么射线ρ(E,R,Hr)可能穿出了研究区域,这样模型的宽度不足以确定它。在这种情况下,必须放弃ρ(E,R,Hr)的考虑。

规则2。如果新的射线ρk+1(E,R,Hr)与并没有进入页码σk+1(E,R,Hr)的新的层位相交,则有必要在页码σk+1(E,R,Hr)中增加这些层位,并且在ρk+1(E,R,Hr)中增加相应的射线与模型的接触点。为了确定这些新的接触点和其对应的层位,需要测试Pk+1(E,R,Hr)中所有的线段Ii,k+1Ii+1,k+1与地质模型中所有层位的相交。这一操作是非常耗时的,这也是为什么GOCAD数据库允许使用基于八叉树(octree)技术快速算法的原因(J.L.Mallet,1990;Y.Huang 1990)。

规则3。可能发生这种情况,ρk+1(E,R,Hr)正切于属于页码σk+1(E,R,Hr)但不是Hr的层位

。此时,存在不同于E和R的两个射线与模型的接触点Iα,k+1和Iβ,k+1,并有:

地质模型计算机辅助设计原理与应用

在这种情况下,建议:

·从ρk+1中去掉Iα,k+1和Iβ,k+1

·从σk+1中去掉Hα,k+1和Hβ,k+1

用单纯形方法寻找

:

对于与初始页码σ0(E,R,Hr)相联系的给定的一个初始近似射线路径ρ0(E,R,Hr),用一种迭代算法来确定射线路径ρ(E,R,Hr),ρ0(E,R,Hr)的逼近值在算法的每一步k中,Iik在Iik上被移动到对应于T(Iik|ρk)的最小值的点

上。这个最小值通过使用“单纯形”算法来确定,这种算法基于用来定义T-surface的Hik的初始三角形的平滑曲线插值。

应用实例。在图5.14中,给出了一个由上述方法获得的射线追踪的例子。可以看到地质情况是比较复杂的,特别是包括一个与给定地层相交的盐丘。为了获得较清晰的图像,在图中显示了较少的射线。

图5.14使GOCAD产生的几何数据进行射线追踪的例子(Philippe Nobil等,1990)

可以看到盐丘切割了一个层面,层面位于盐丘内部的部分被移动

基于Bezier或样条插值的经典CAD软件的目标是交互地模拟较好的曲面,而不能生成符合地质应用中遇到的复杂数据的曲面。因此,基于这些方法的软件只能生成抽象的地质曲面,而不是与真实地质界面对应的曲面。与这些经典方法相反,在GOCAD项目开发的几何工具允许模拟极复杂的地质体并且可以同时有效地考虑所有的数据。另外,这样获得的模型可以方便的用于开发地球物理应用程序。本节给出的射线追踪算法并不要求使用超级计算机,它可以在工作站上运行,这要归功于GOCAD的几何数据库的结构。

Ⅱ 如何通过视觉SLAM构建得到的三维地图进行机器人的路径规划

首先,我们还是需要确认一下,三维的路径规划需要哪些信息? 定位与地图。 机器人家上了解到
首先, 利用视觉 SLAM 可以解决机器人的定位问题,剩下的就是怎么将视觉地图转换成规划使用的地图了。 当然,对于规划算法,三维的点状机器人,用 A* 还凑合,但是,如果是需要考虑姿态的无人机(六维),那么可能就得考虑用基于采样的方法或者轨迹优化类的算法了。 而这类算法,不太可能直接得到完整的 Configuration Space,所以涉及到环境(地图)的就一个用途:碰撞检测/计算与障碍物距离。 我们用 V-SLAM 建立的地图可能长这样: 理论上讲,直接输入这些障碍物的点就够用了(计算每个点与机器人最近距离)。
但是,毕竟点很多呀,而且V-SLAM很可能计算到一些错误的点。所以,我们一般需要进行以下处理: (我就用机械臂上的来做例子,当然,我的点云是从Kinect获取的,但大概意思相同:机器之眼 | Kinect v2)
滤波:去掉一些离群点,PCL 库就提供了几种点云滤波算法。
滤波前: 滤波后: Octomap:在做规划时,对障碍物的距离精度要求其实不是那么高,所以,完全可以对点云数据进行压缩
降采样是一个方法,但是采用八叉树结构是更通用的方法:OctoMap - 3D occupancy mapping。 前面的图中可以发现,我将机械臂规划中的点云也换成了Octomap,这样,每次只需对Octomap中的小立方体与机械臂做碰撞检测就行,大大降低了存储数据量与碰撞检测运算量。
Sematic Map: 就算转换成了Octomap,小立方体还是很多呀,怎么办?这时候就可以对点云进行一些处理了。例如,通过平面检测,识别出地面、天花板等,直接用一个大的立方体替换掉Octomap的小方块;或者通过物体识别算法识别出环境中的物体,用物体的3D模型替换Octomap,这样也可以大大减少碰撞检测的计算量。

Ⅲ 已知点求与已知点集中的最近点的算法

可以用四叉树(二维)或者八叉树(三维)来对点分组,把空间分块,计算每块的中心点坐标即为树的中间结点,与其距离小于组半径的即为其组内的叶节点。已知点所在的组可以根据要求再缩短半径细分,直到点的数量达到要求。

八叉树参考:http://en.wikipedia.org/wiki/Octree

Ⅳ 栅格数据的编码方法

编码方法
在栅格文件中,每个栅格只能赋予一个唯一的属性值,所以属性个数的总数是栅格文件的行数乘以列数的积,而为了保证精度,栅格单元分得一般都很小,这样需要存储的数据量就相当大了。通常一个栅格文件的栅格单元数以万计。但许多栅格单元与相邻的栅格单元都具有相同的值,因此使用了各式各样的数据编码技术与压缩编码技术。主要的编码技术简介如下:
(一)直接栅格编码
直接栅格编码是将栅格数据看作一个数据短阵,逐行或逐列逐个记录代码。可每行从左到右逐个记录,也可奇数行从左到右,偶数行从右到左记录,为特定目的也可采用其它特殊顺序。通常称这种编码的图像文件为栅格文件,这种网格文件直观性强,但无法采用任何种压缩编码方法。图2.1 (c)的栅格编码为:4,4,4,4,7,7,7,7;4,4,4,4,4,7,7,7;4,4,4,4,9,9,7,7;0,0,4,9,9,9,7,7;0,0,0,9,9,9,7,7;0,0,0,9,9,9,9,9;0,0,0,0,9,9,9,9;0,0,0,0,0,9,9,9。可用程序设计语言按顺序文件或随机文件记录这些数据。
(二)链式编码
链式编码又称弗里曼链码或世界链码。它由某一原始点和一系列在基本方向上数字确定的单位矢量链。基本方向有东、东南、南、西南、西、西北、北、东北等8个,每个后继点位于其前继点可能的8个基本方位之一。8个基本方向的代码可分别用0,1,2,3,4,5,6,7表示,既可按顺时针也可按逆时针表示。栅格结构按逆时针编码上图(2)可记录为:1,3,7,7,7,6,6,5,4。其中前两个数字1与3表示线状物起点的坐标,即在第一行第三列,从第三个数字起表示单位矢量的前进方向。
链式编码有效地压缩了栅格数据,尤其对多边形的表示最为显着,链式编码还有一定的运算能力,对计算长度、面积或转折方向的凸凹度更为方便。比较适于存储图形数据。但对边界做合并和插入等修改编辑工作很难实施,而且对局部修改要改变整体结构,效率较低。
(三)游程编码
游程编码是栅格数据压缩的重要且比较简单的编码方法。它的基本思路是:对于一幅栅格图像,常有行或列方向相邻的若干点具有相同的属性代码,因而可采用某种方法压缩重复的记录内容。方法之一是在栅格数据阵列的各行或列象元的特征数据的代码发生变化时,逐个记录该代码及相同代码重复的个数,从而可在二维平面内实现数据的大量压缩。另一种编码方案是在逐行逐列记录属性代码时,仅记录下发生变化的位置和相应的代码。图2.1 (c)栅格结构按游程编码方法可记录为:
第一行4,47,4
第二行4,57,3
第三行4,49,27,2
第四行0,24,19,37,2
第五行0,39,37,2
第六行0,39,5
第七行0,49,4
第八行0,59,3
在这个例子中,原本64个栅格数据,只用了40数值就完整地表示了出来,可见用游程编码方法压缩数据是十分有效的。
游程编码的编码和解码的算法都比较简单,占用的计算机资源少,游程编码还易于检索、叠加、合并等操作,在栅格单元分得更细时,数据的相关性越强,压缩效率更高,数据量并没有明显增加。因此,该编码适合微型计算机等中央处理器处理速度慢,存储容量小的设备进行图像处理。
(四)块式编码
块式编码是游程编码扩展到二维空间的情况,游程编码是在一维状态记录栅格单元的位置和属性,如果采用正方形区域作为记录单元,每个记录单元包括相邻的若干栅格,数据结构由记录单元中左上角的栅格单元的行、列号(初始位置)和记录单元的边长(半径)与记录单元的属性代码三部分组成,这便是块式编码。因此可以说,游程编码是块式编码的特殊情况,块式编码是游程编码的一般形式。图2.1 (c)表示的栅格结构按块式编码方法可记录为:
(1,1,3,4),(1,4,1,4),(1,5,1,7),(1,6,2,7),(1,8,1,7);
(2,4,1,4),(2,5,1,4),(2,8,1,7);
(3,4,1,4),(3,5,2,9),(3,7,2,7);
(4,1,2,0),(4,3,1,4),(4,4,1,9);
(5,3,1,0),(5,4,2,9),(5,6,1,9),(5,7,1,7),(5,8,1,7);
(6,1,3,0),(6,6,3,9);
(7,4,1,0),(7,5,1,9),
(8,4,1,0),(8,5,1,0)。
从以上论述的块式编码的编码原理可知,一个记录单元所表示的地理数据相关性越强,也即记录单元包含的正方形边长越长,压缩效率越高。而地理数据相关性差时,也即多边形边界碎杂时,块式编码的效果较差。
块式编码的运算能力弱,必要时其编码的栅格数据须通过解码转换成栅格矩阵编码的数据形式才能顺利进行。块式编码在图像合并、插入、面积计算等功能方面较强。
(五)四叉树数据结构
四叉树编码又名四元树编码,可以通俗理解为一个具有四分枝结构的树,它具有栅格数据二维空间分布的特征,这是一种更为有效的编码方法。四叉树编码将整个图形区域按照四个象限递归分割成2n×2n象元阵列,形成过程是:将一个2×2图像分解成大小相等的四部分,每一部分又分解成大小相等的四部分,就这样一直分解下去,一直分解到正方形的大小正好与象元的大小相等为止,即逐步分解为包含单一类型的方形区域(均值块),最小的方形区域为一个栅格单元。这个倒向树状的图中“○”表示可继续分割的方形区域;“□”表示具有同类属性的方形区域;“■”表示不能再分的单个(最小)象元栅格,即所谓的树叶,树叶表示的是具有单一类型的地物或是符合既定要求的少数几种地物,可以在任意层上。
通过以上对四叉树结构的分析,可发现它有以下特点:
⑴ 存储空间小:因为记录的基本单位是块,不是象素点,因此大大地节省了存储空间。
⑵ 运算速度快:因为四叉树结构的图形操作是在数上进行的,比直接在图上运算要快得多。
⑶ 栅格阵列各部分的分辨率可变:不需要表示许多细节的地方,分级较少,因而分辨率低;边界复杂的地方分级较多,分辨率高,因而在减少数据量的基础上满足了数据精度。
⑷ 容易有效地计算多边形的数量特征。
⑸ 与栅格结构之间的转换,比其它压缩方法容易。
⑹ 四叉树编码表示多边形中嵌套其它属性的多边形时比较方便:它允许多边形嵌套多边形的结构,是非常实用的、重要的特点,这点深深得到地理信息系统数据编码设计者的青睐。
⑺ 四叉树编码的不足之处是:转换具有不确定性,对大小相等形状相同的多边形,不同人可能分解为不同的四叉树结构,因而不利于形状分析和模式识别。四叉树编码处理结构单调的图形区域比较适合,压缩效果好,但对具有复杂结构的图形区域,压缩效率会受到很大影响。
(六)八叉树与十六叉树结构
前面的数据结构都是基于二维的,在相当多的情况下,如地下资源埋藏、地下溶洞的空间分布,二维的坐标体系根本无法表达。因此需要有三维数据结构,如果考虑空间目标随时间变化,那还需要4维数据结构。较好的表达三维与四维结构是在四叉树基础上发展起来的八叉树(三维)和十六叉树(四维)。
是将空间区域不断地划分为八个同样大小的子区域,
(七)各种编码的比较分析
比较以上各种编码,可得出如下主要结论:
⑴ 直接栅格编码直观简单,但数据出现大量冗余;
⑵ 链式编码对边界的运算方便,压缩效果好,但区域运算较困难;
⑶ 游程编码即较大幅度地保留了原始栅格结构,又有较高的压缩效率,而且编码解码也较容易,但仅局限在一维空间上处理数据;
⑷ 块式编码在图像合并、插入、面积计算等功能方面较强,当所表示的地理数据相关性强时,压缩效率相当高;但地理数据相关性差时,块式编码的效果较差,而且块式编码的运算能力较弱;
⑸ 四叉树编码运算速度快,存储空间小,分辨率可变,压缩效率高,但其转换具有不确定性,难以形成统一算法。

Ⅳ blender栅格填充线很乱

使用blender中的重构网格修改器。
在blender中打开一个球体,切换到“线框”模式,我们发现布线比较乱,右边属性导航中选择“修改器”,添加“重构网格”修改器,默认是模式是“锐利”,我们可以调节“八叉树算法”、“比例”等数值进行重构,切换到“平滑”模式,可以获得更平滑的模型网格效果,要更平滑可以增加八叉树算法的值,相反的减小值,切换到“区块”模式,可以把模型重构为区块的效果,类似方块组成的模型,就可以解决填充线很乱的现象了。

Ⅵ 基于体的建模方法

b体模型基于3D空间的体元分割和真3D实体表达,体元的属性可以独立描述和存储,因而可以进行3D空间操作和分析。体元模型可以按体元的面数分为四面体(Tetrahedral)、六面体(Hexahedral)、棱柱体(Prismatic)和多面体(Polyhedral)等类型,也可以根据体元的规整性分为规则体元和不规则体元两个大类。规则体元包括CSG、Voxel、Octree、Needle和Regular Block共5种模型。规则体元通常用于水体、污染和环境问题建模,其中Voxel、Octree模型是一种无采样约束的面向场物质(如重力场、磁场)的连续空间的标准分割方法,Needle和Regular Block 可用于简单地质建模。不规则体元包括TEN、Pyramid、TP、Geocelluar、Irregular Block、Solid、3D Voronoi和GTP共8种模型。不规则体元是有采样约束的、基于地质地层界面和地质构造的面向实体的3D模型。

表2—1 3D空间建模方法分类

1.规则块体(Regular Block)建模

块体建模技术的研究和应用始于20世纪60年代初,是一种传统的地质建模方法。20世纪60年代和70年代开发的一些地质体模拟系统采用这种建模技术,比较典型的有RTZ公司开发的OBMS和OPDP系统、Control Data公司的Mineval系统和Minetec公司的MEDS系统。这类建模技术是把要建模的空间分割成规则的3D立方网格,称为Block,每个块体在计算机中的存储地址与其在自然矿床中的位置相对应,每个块体被视为均质同性体,由克立格法、距离加权平均法或其他方法确定其品位或岩性参数值。该模型用于属性渐变的3D空间(如浸染状金属矿体)建模很有效,对于有边界约束的沉积地层、地质构造和开挖空间的建模则必须不断降低单元尺寸,从而引起数据急速膨胀。解决方式是只在边界区域进行局部的单元细化。

2.结构实体几何(CSG)建模

首先预定义一些形状规则的基本体元,如立方体、圆柱体、球体、圆锥及封闭样条曲面等,这些体元之间可以进行几何变换和布尔操作(并、交、差),由这些规则的基本体元通过操作来组合成一个物体。生成的3D物体可以用CSG树表示。CSG建模在描述结构简单的3D物体时十分有效,但对于复杂不规则3D地物尤其是地质体则很不方便,且效率大大降低。

3.3D体素(Voxel)建模

该模型的实质是2D Grid模型的3D扩展,即以一组规则尺寸的3D体素(a=b=c)来剖分所要模拟的空间。基于Voxel的建模法有一个显着优点,就是在编制程序时可以采用隐含的定位技术,以节省存储空间和运算时间。该模型虽然结构简单,操作方便,但表达空间位置的几何精度低,且不适合于表达和分析实体之间的空间关系。当然,通过缩小Voxel的尺寸,可以提高建模精度,但空间单元数目及储量将呈三次方增长。

4.八叉树(Octree)建模

类似于2D GIS中的四叉树的栅格,Octree模型实质上是对Voxel模型的压缩改进。该方法将3D空间区域分成8个象限,且在树上的每个节点处存储8个数据元素。当象限中所有体元的类型相同时(即为均质体),该类型值存入相应的节点数据元素中。非均质象限再进行象限细分,并由该节点中的相应数据元素指向树中的下一个节点,如此细分直到每个节点所代表的区域都是均质体为止。Octree模型在医学、生物学、机械学等领域已得到成功应用,但在矿床地质建模中有较大的局限性。基于八叉树,肖乐斌等提出了四层矢量化八叉树层次结构,边馥苓等提出了面向目标的数据结构。

5.针体(Needle)建模

该模型的原理类似于结晶生长过程,用一组具有相同截面尺寸的不同长度或高度的针状柱体对某一非规则3D空间、3D地物或地质体进行空间分割,用其集合来表达该目标空间、3D地物或地质体。

6.四面体格网(TEN)建模

该模型是在3D Delaunay三角化研究的基础上提出的,是一个基于点的TEN的3D矢量数据模型。其基本思路是用互不相交的直线将3D空间中无重复的散乱点集两两连接形成三角面片,再由互不穿越的三角面片构成四面体格网。其中四面体(Tetrahedral)都是以空间散乱点为其顶点,且每个四面体内不含有点集中的任一点。TEN建模时,四面体内点的属性可由插值函数得到,其中插值函数的参数由四个顶点的属性决定,因此,经过四面体剖分插值后,可以得到空间的3D数据信息。TEN虽然可以描述实体内部,但不能表示3D连续曲面,而且用TEN来生成3D空间曲面也较为困难,算法设计较复杂。

7.金字塔(Pyramid)模型

类似于TEN模型,只不过是用4个三角面片和1个四边形封闭形成的金字塔状模型来实现对空间数据场的剖分。由于其数据维护和模型更新困难,一般很少采用。

8.三棱柱(Tri—Prism,TP)建模

该模型是常用的简单的D地学空间建模技术。张煜等给出了TP体元的定义,同时给出了相关切割和剖分算法,列举了基于该模型的数字地层模型的相关应用。由于TP模型的前提是三条棱边相互平行,因而不能基于实际的偏斜钻孔来构建真3D地质,也难以处理复杂地质构造。戴吾蛟等则以不规则TP为基本单元,讨论了不规则TP网络模型(TPN)的数据结构、拓扑建立、拓扑检查和空间插值问题,但在地学应用方面缺乏深入讨论。

9.地质细胞(Geocellular)模型

其实质是Voxel模型的变种,即在xy平面上仍然是标准的Grid剖分,而在z方向则依据数据场类型或地层界面变化进行实际划分,从而形成逼近实际界面的3D体元空间剖分。

10.不规则块体(Irregular Block)建模

不规则块体与规则块体的区别在于规则块体3个方向上的尺度(a、b、c)互不相等,但保持常数(如OBMS系统);而非规则块体3个方向上的尺度(a、b、c)不仅互不相等,且不为常数。非规则块体建模法的优势是可以根据地层空间界面的实际变化进行模拟,因而可以提高空间建模的精度。

11.实体(Solid)建模

实体建模法是在20世纪80年代发展起来的一种建模方法,最初是采用多边形网格(线框模型)描述地质体的几何边界,而用传统的块段模型描述地质体内部的品位或质量的分布。实体建模技术经过后来的发展已经比较成熟,其典型代表是加拿大Lynx系统中提供的实体建模技术。该技术以地质体在三个平行剖面上的边界线及其连线构建元件(Component)来建模。元件不仅表示一个封闭的体,也表示体内的属性。一个简单地质体就由这样的一系列元件所构成。地质体内部的属性变化仍然用传统的块段模型来模拟。在用传统的块段模型来模拟地质体内部的属性变化时,一般要以地质体的边界作为约束,这就涉及由线框模型或体元模型来生成地质体的三维栅格模型的问题,在现有的商品化软件中,这一问题已经得到解决。实体建模方法的主要优点是:①用剖面来建模不但符合地质工作的方式,而且可使建模者对现有资料进行解释和推断;②不但可以精确地表达各种不规则地质体的几何形态,而且可以描述地质体的属性;③地质体几何模型容易修改;④这种建模方法也适用于采掘工程边界的表达。其主要不足是:①缺乏对各种不同复杂程度地质体之间及地质体几何元素之间必要的拓扑关系的描述,从而使相邻地质体的边界不得不重复数字化,地质界线、地质界面和地质体的查询以及地质对象的拓扑空间分析无法进行。②人工交互工作量巨大。

侯恩科针对该模型的不足,进行了深入研究,并根据面向对象方法的特点、计算机地质建模的特殊要求和地质体几何形态的不规则性以及产状的多样性特点,提出了一种新的面向对象的不规则体元数据模型。将地质对象抽象为点、线、面、体四大类,将地质体分为复合体、复杂体、简单体和体元四种对象类型。体元是构成地质体的基本体素,它可以在局部坐标系中定义,并由点、弧段、连接线、体元剖面多边形(包括前、中、后3个剖面多边形边界)和体元面五种基本对象类来描述。各对象类型之间的空间关系可由12种拓扑关系来描述。以这12种拓扑关系为基础,定义了不规则体元数据模型的数据结构。

12.3D Voronoi图模型

3D Voronoi图是2D Voronoi图的3D扩展。其实质是基于一组离散采样点,在约束空间内形成一组面—面相邻而互不交叉(重叠)的多面体,用该组多面体完成对目标空间的无缝分割。该模型最早起源于计算机图形学领域,近年,人们开始研究其在地学领域中的可行性,试图在海洋、污染、水体及金属矿体建模方面得到应用。

13.广义三棱柱(GTP)建模

针对地质钻孔尤其是深钻偏斜的特点,吴立新等提出一种可以不受三棱柱棱边平行即(钻孔垂直)限制的ATP(Analogical Tri—Prism)建模方法,后发展为广义三棱柱建模(Generalized Tri—Prism,GTP),并将TP建模称为其特例。而且,基于TIN边退化和TIN面退化,可以由GTP导出Pyramid模型和TEN模型。GTP建模原理是:用GTP的上下底面的三角形集合所组成的TIN面来表达不同的地层面,然后利用GTP侧面的空间四边形面来描述层面间的空间关系,用GTP柱体来表达层与层之间内部实体。其特点是充分结合钻孔数据,利用钻孔数据的不同分层来模拟地层的分层实体并表达地层面的形态。基于点、TIN边、侧边、TIN面、侧面和GTP定义了8组拓扑关系,据此可以方便地实现空间邻接和空间邻近查询与分析。而且,GTP数据结构易于扩充,当有新的钻孔数据加入时,只需在局部修改TIN的生成以及在局部修改GTP的生成,而不需改变整个体的结构,这样使得GTP的局部细化与动态维护很方便。

Ⅶ 谁能介绍一下游戏场景管理中的四叉树、八叉树算法是怎么回事,比如最基本的,怎么确定显示节点

明白二叉树就明白n叉树了

热点内容
eNSP华为IPv6如何连接服务器 发布:2024-10-28 06:54:51 浏览:557
大部分行李箱的密码是多少三位数 发布:2024-10-28 06:53:28 浏览:294
公网ip文件服务器 发布:2024-10-28 06:43:24 浏览:786
我的世界白熊服务器怎么做 发布:2024-10-28 06:35:49 浏览:363
访问外网的软件 发布:2024-10-28 06:34:27 浏览:201
非加密区的是什么 发布:2024-10-28 06:29:33 浏览:77
备份mssql数据库 发布:2024-10-28 06:29:30 浏览:372
安卓隐藏相片如何移出来 发布:2024-10-28 06:24:52 浏览:899
java保存框 发布:2024-10-28 06:23:29 浏览:950
c语言振兴中华 发布:2024-10-28 06:23:22 浏览:375