发明名称 基于双层规则化的渠道地面网格模型表示方法
摘要 本发明公布了一种基于双层规则化的渠道地面网格模型表示方法,属地面网格模型表示方法。将渠道经过的地面按照其X、Y坐标划分成大小相等的正四边形网格,称作外部网格,整个地面被划分成由行列网格的形式。检查每个外部网格中有无测量的地形数据点,当有数据点落入网格内,则将该外部网格进一步划分成小的单元格,这个小的单元网格被称为内部网格。根据测量的地形点数据,预先可以求出外部网格和内部网格中每个顶点的高程值,并把顶点坐标和高程数据信息存入到内部网格和外部网格数组中,这样可以利用网格坐标和顶点高程,实时计算任意点地面高程。本发明地形分辨率可调,可以表达复杂地形的突变现象。
申请公布号 CN101398943A 申请公布日期 2009.04.01
申请号 CN200810155730.3 申请日期 2008.10.08
申请人 河海大学 发明人 薛联青;程光;靳宏昌
分类号 G06T17/50(2006.01)I;G06T17/20(2006.01)I 主分类号 G06T17/50(2006.01)I
代理机构 南京经纬专利商标代理有限公司 代理人 魏学成
主权项 1. 一种基于双层规则化的渠道地面网格模型表示方法,其特征在于包括以下步骤:第1步:设置参数设置外部网格边长为L1,设置内部网格的边长为L2,两个网格边长之间关系为:L1=L2*2a,其中a是正整数,每个内部网格的行数和列数都为2a;第2步:输入渠道设计的地形点数据设置一个地形点数组DIXING,数组的每条记录存放输入渠道设计相关的地形点数据的X、Y坐标和高程,其中X为地形点横轴坐标值,Y为地形点纵轴坐标值;第3步:地形数据排序对地形点进行排序,以X坐标为主键、Y坐标为次键,按递增的顺序进行排序;第4步:查找地形数据的边界坐标查找到地形点数据中最小的X坐标值min_x、最大的X坐标值max_x、最小的Y坐标值min_y、最大的Y坐标值max_y,选择坐标(min_x,min_y)作为边界最小点;第5步:设置地形网格大小设置外部网格数组,外部网格的列数n是大于(max_x-min_x)/L1的最小正整数,外部网格的行数m是大于(max_y-min_y)/L1的最小正整数,第6步:设置外部网格数组以坐标(min_x,min_y)作为外部网格的起点,设置外部网格数组OutGrid[m][n][5]用于存放外部网格OutGrid[i][j]的四个顶点的高程和包含有内部网格的外部网格编号,按照顺序依次为左下顶点高程OutGrid[i][j][0],右下顶点高程OutGrid[i][j][1],右上顶点高程OutGrid[i][j][2],左上顶点高程OutGrid[i][j][3],OutGrid[i][j][4]用于表示包含有内部网格的外部网格编号h,包含有内部网格的外部网格编号初始值设置为0,其中i为外部网格的行数0≤i<m-1,j为外部网格的列数0≤j<n-1;第7步:遍历外部网格按照行或列检查每个外部网格,当一个外部网格OutGrid[i][j]中有地形数据点落入,进到第8步;当一个外部网格OutGrid[i][j]中没有地形数据点落入,重复第7步;当已经检测完所有外部网格,进到第9步;第8步更新包含有内部网格的外部网格编号更新包含有内部网格的外部网格编号H=h+1,将更新后的包含有内部网格的外部网格编号H赋值给h,并将该外部网格设置为有地形点数据的编号,即OutGrid[i][j][4]=H,回到第7步;第9步:建立内部网格数组外部网格数组中有地形点的外部网格数量为h,每个外部网格中设置内部网格的数量为(L1/L2*L1/L2),设置内部网格数组InGrid[K][4],其中K表示内部网格数组中内部网格的数量,K=h*(L1/L2*L1/*L2),进到第10步;第10步:遍历包含内部网格的外部网格按照行或列检查每个外部网格,当一个外部网格OutGrid[i][j][4]大于0,表示该外部网格可以进一步划分为更细的内部网格,进到第11步;当OutGrid[i][j][4]等于0,重复第10步;当已经检测完所有外部网格,则地形网格划分结束,退出算法;第11步:设置内部网格当一个外部网格OutGrid[i][j]需要划分内部网格,其编号为H,则内部网格InGrid中的第(H-1)*(L1*L1)/(L2*L2)到H*(L1*L1)/(L2*L2)-1的记录该外部网格中每个内部网格,数组的每条记录存放内部网格四个顶点的高程,按照顺序依次为左下顶点高程InGrid[k][0],右下顶点高程InGrid[k][1],右上顶点高程InGrid[k][2],左上顶点高程InGrid[k][3],其中k大于等于(H-1)*(L1*L1)/(L2*L2),同时k小于等于H*(L1*L1)/(L2*L2)-1,返回第10步。
地址 210098江苏省南京市西康路1号