一种面向TIN构建的Hilbert排序方法技术

技术编号:13736552 阅读:37 留言:0更新日期:2016-09-22 04:41
本发明专利技术涉及一种面向TIN构建的Hilbert排序方法。该方法包括:(1)读入待排序的二维点集P;(2)分解点集P以调整点集P内点的存储顺序;(3)分解点集PW以调整点集PW中点的存储顺序;(4)分解点集PE以调整点集PE中点的存储顺序;(5)判断子点集是否分解完成;(6)等待所有子点集分解结束,即完成点集的Hilbert排序。本发明专利技术利用点集分割的思想来调整点集的存储顺序,能够摆脱对网格的依赖,直接根据点集的坐标进行Hilbert排序,从而避免传统Hilbert排序方法的不足,能够有效地解决TIN构建过程中点集的Hilbert排序问题,提高了排序的效率。

【技术实现步骤摘要】

本专利技术涉及地理信息系统、地质学、计算机图形学、计算机仿真及虚拟现实等领域,具体涉及一种面向TIN构建的Hilbert排序方法
技术介绍
DTM(数字表面模型)是实现地形三维可视化的一种有效途径。栅格和TIN(不规则三角网)是表示DTM的两种主要数据格式。与栅格方法对格网的周围采样点按照距离远近加权平均的思想不同,TIN方法采取的是一种更加忠实于原始数据的方法,它几乎完整地保留了原始数据,按Delaunay原则将采样点直接连成网建立起模型。因此,TIN在地理信息系统、地质学、计算机图形学、计算机仿真及虚拟现实等领域都有着广泛的应用,是目前DTM常采用的一种格式。在众多的TIN构建算法中,逐点插入法由于算法简单、占用空间小、便于动态更新等优点逐渐成为目前最流行的一种算法。起初逐点插入法的效率比较低,为了提高构网的效率,学者们设计了许多的改进方案。经过先后对逐点插入法不同程度的发展和完善,形成了以创建初始包围盒、点定位、空腔扩展、更新三角网为主要流程的逐点插入法。在此基础上,为了进一步提高逐点插入法的算法效率,学者们的研究焦点主要集中在“点定位”这个过程上。Sloan提出了划分均匀网格,按网格将点排序后插入的方法。Buchin(Buchin K.Constructing Delaunay triangulations along space-filling curves[M].Springer Berlin Heidelberg,2009:119-130.)在划分均匀网格排序的基础上提出了依照不同的空间填充曲线顺序遍历插入网格中点的方法,进一步提高了“点定位”的效率。空间填充曲线是闭合间隔单元I=[0,1]到闭合矩形单元S=[0,1]2的连续映射,也是所有能够填满二维或更高维空间的连续分形曲线的总称,应用最广泛的空间曲线包括Morton曲线、Peano曲线和Hilbert曲线。Hilbert曲线具有良好的空间聚集性及空间连续性,可以与逐点插入法结合,以提高构网的效率。然而,传统中利用Hilbert曲线进行排序的算法都是面向空间剖分的方法,以栅格辅助进行点集排序,需要将栅格不断的细分至每个格元中仅包含一个点,然后根据格元的行、列号计算对应的Hilbert编码值,再将栅格中的点按照Hilbert编码顺序输出,进而得到排好序的点集。但是这些方法不适用于TIN构建过程的排序操
作,因为以下两点原因:(1)内存消耗过大。随着数据采集技术的发展,点集的数据量越来越大,点与点之间的间距越来越小,使得用于辅助的网格往往很庞大,而且细分的层次非常高,占用极高的内存;(2)排序效率较低。使用网格辅助排序,是一种从网格出发的排序方法,需要逐个判断每个点所处的网格,这个过程非常费时,使用这种方法,往往排序的时间比构网的时间还要久。
技术实现思路
为了改善传统Hilbert排序方法的不足及提高逐点插入法构网的效率,本专利技术提出一种全新的Hilbert排序方法,在显著降低算法内存需求的情况下,极大的提高了Hilbert排序的效率,有利于Hilbert排序的推广和应用。本专利技术采用的技术方案是:一种面向TIN构建的Hilbert排序方法,其特征在于,包括以下步骤:(1)读入待排序的二维点集P={pi,i∈[0,n)本文档来自技高网
...

【技术保护点】
一种面向TIN构建的Hilbert排序方法,其特征在于,包括以下步骤:(1)读入待排序的二维点集P={pi,i∈[0,n)},包括n个点的X坐标和Y坐标,定义点集的四个方位:西北NW、西南SW、东北NE、东南SE,设初始点集P的方位为西南SW;(2)分解点集P以调整点集P内点的存储顺序:根据初始点集P的方位,将点集P分解为两部分:PE和PW,具体过程为:如果点集P的方位是西南SW或东北NE,则计算点集P的X坐标中位数X0.5,否则计算P的Y坐标中位数Y0.5,利用中位数调整点集P内点的存储顺序,以满足如下条件:对于西南SW或者东北NE方位,pi.x≤X0.5≤pj.x,i∈[0,n2-1],j∈[n2+1,n),p∈P;]]>对于西北NW方位,对于东南SE方位,此时,设(3)分解点集PW以调整点集PW中点的存储顺序:根据点集P的方位,将点集PW分解为两个子点集:PNW和PSW,具体过程为:如果点集P的方位是西南SW或东北NE,则计算点集PW的Y坐标中位数Y0.5;若点集P的方位是西北NW或者东南SE,则计算PW的X坐标中位数X0.5,利用计算出的中位数调整点集PW内点的存储顺序,以满足以下条件:对于西南SW或者东北NE方位,pi.y≤Y0.5≤pj.y,i∈[0,n4-1],j∈[n4+1,n2),p∈P;]]>对于西北NW方位,对于东南SE方位,此时(4)分解点集PE以调整点集PE中点的存储顺序:根据点集P的方位,将点集PE分解为两个子点集:PNE和PSE,具体过程为:如果点集P的方位是西南SW或东北NE,则计算点集PE的Y坐标中位数Y0.5;若点集P的方位是西北NW或者东南SE,则计算点集PE的X坐标中位数X0.5,利用计算出的中位数调整点集PE内点的存储顺序,以满足以下条件:对于西南SW或者东北NE方位,pi.y≥Y0.5≥pj.y,i∈[n2,3n4-1],j∈[3n4+1,n),p∈P;]]>对于西北NW方位,对于东南SE方位,此时(5)对于步骤(3)和(4)中分解得到的子点集PNW、PSW、PNE和PSE,逐个判断其中包含的点数是否大于1,如果是,则说明该子点集需要继续进行分割,分别以子点集PNW、PSW、PNE和PSE作为输入点集P,各点集方位依次为西北NW、西南SW、东北NE和东南SE,递归执行步骤(2)、(3)、(4)和(5);否则该子点集分解完成;(6)等待所有子点集分解结束,即完成点集的Hilbert排序。...

【技术特征摘要】
1.一种面向TIN构建的Hilbert排序方法,其特征在于,包...

【专利技术属性】
技术研发人员:刘年涛周良辰林冰仙
申请(专利权)人:南京师范大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1