一种基于自适应屏幕分辨率的海底地形建模方法
文献发布时间:2023-06-19 09:55:50
技术领域
本发明属于可视化仿真技术领域,尤其涉及一种基于自适应屏幕分辨率的海底地形建模方法。
背景技术
海底地形建模仿真技术具有较高的应用价值,它不仅能够为水下航行器提供路径规划、导航定位等服务,还能够为海底管道建设、海洋战场环境仿真、航行训练仿真等提供有力的支撑平台。
通常基于水声测量法进行建模仿真,但是由于水声测量法存在的局限性,导致电子海图中的水深数据比较稀疏,据此构建的海底地形曲面比较粗糙,生成的海底地形场景真实感不强,因而需要在建模时对水深数据进行插值。现有的插值方法中,插值点的数量是依靠开发人员的主观经验确定的,网格数量需要人工反复调试才能与显示设备性能相匹配,建模效率无法满足可视化仿真要求,且仿真结果依赖于主观因素,准确性得不到保证。因此,亟需一种更加准确高效的海底地形建模方法。
发明内容
针对现有技术中存在不足,本发明提供了一种基于自适应屏幕分辨率的海底地形建模方法,基于显示设备屏幕分辨率以及单元网格像素值计算插值点数,对初始海底地形三维网格顶点水深值进行内插,生成细分三维网格,从而高效地获取更加精准的海底地形图。
本发明是通过以下技术手段实现上述技术目的的。
一种基于自适应屏幕分辨率的海底地形建模方法,包括如下步骤:
步骤1:将海底地形水平面均匀划分为初始二维网格;
步骤2:提取电子海图中的水深数据并对水深数据进行内插,将内插后得到的水深数据值作为初始二维网格顶点高度值,并构建初始三维网格;
步骤3:基于显示设备屏幕分辨率以及组成初始二维网格的单元网格像素值,计算初始三维网格插值点数;
步骤4:基于插值点数,对初始三维网格的顶点水深值进行内插,获取插值点水深值;
步骤5:根据插值点水深值构建细分三维网格,对细分三维网格映射纹理,获取海底地形图。
进一步地,所述初始三维网格插值点数为Q
其中,Q
进一步地,所述步骤4中采用二次三项式拟合法对水深数据进行内插。
进一步地,所述步骤4具体为:
读取初始三维网格的水平或垂直方向的网格顶点,对网格顶点采用递推法进行分组,对每组中的网格顶点数据采用二次三项式拟合法进行曲线拟合,计算该组网格顶点数据间插值点的高度值。
进一步地,所述分组过程为:将网格顶点n
进一步地,所述二次三项式曲线拟合公式为:z=ax
进一步地,所述提取电子海图中的水深数据具体过程为:读取电子海图头文件中的水深数据层信息,将海图平面直角坐标转换成地理坐标,获取离散水深数据点。
进一步地,所述显示设备屏幕分辨率通过检测函数window.innerWidth()和window.innerHeight()获取。
进一步地,所述步骤2中采用二次曲面移动拟合法对水深数据进行内插。
本发明具有如下有益效果:
与现有技术相比,本发明首先将海底地形的水平面均匀划为初始二维网格后提取电子海图中的水深数据,利用二次曲面移动拟合法对稀疏的水深数据进行内插,得到的水深值作为网格顶点的高度值,来构建初始三维网格;自动获取显示设备屏幕分辨率,同时引入单元网格像素值来计算出插值点数,再采用二次三项式拟合法对初始三维网格顶点水深值进行内插,根据插值点水深值生成细分三维网格,在网格上映射纹理得到真实的海底地形图。本发明能够根据显示设备的屏幕分辨率定量化求解海底地形水深数据插值点的数量,减少了建模人员的调试工作量;而且本发明取屏幕分辨率中较大像素值代入公式计算,能够获得更加精准的海底地形图,使得海底地形建模精度与屏幕分辨率相适应,很大程度上提高了海底地形建模效率和准确率。
附图说明
图1为本发明所述海底地形建模方法流程图;
图2为本发明所述初始二维网格示意图;
图3为本发明所述初始三维网格示意图;
图4为本发明所述初始三维网格顶点水深值插值点示意图;
图5为本发明所述屏幕分辨率为800×600时细分二维网格示意图;
图6为本发明所述屏幕分辨率为800×600时细分三维网格示意图;
图7为本发明所述屏幕分辨率为800×600时海底地形曲面图。
具体实施方式
下面结合附图以及具体实施例对本发明作进一步的说明,但本发明的保护范围并不限于此。
实施例1:
本发明所述的一种基于自适应屏幕分辨率的海底地形建模方法,具体过程如图1所示,包括如下步骤:
步骤1:将海底地形的水平面均匀划分为初始二维网格。
步骤2:从电子海图中提取水深数据;读取电子海图头文件,电子海图头文件包含了整个电子海图的基本信息,从电子海图头文件中读取出水深数据层信息;从电子海图中读取出的水深数据层中的位置信息是相对于海图左下角建立的海图平面直角坐标(单位:0.01毫米),将海图平面直角坐标转换成地理坐标(单位:米);将转换后的地理坐标和水深数据存储在文本文件中,从而得到离散的水深数据点。
步骤3:利用二次曲面移动拟合法对提取到的稀疏的水深数据进行内插,将内插后得到的水深数据值作为初始二维网格顶点的高度值。
步骤4:根据步骤3中确定的高度值,在初始二维网格基础上构建均匀的初始三维网格。
步骤5:使用检测函数window.innerWidth()和window.innerHeight()自动获取当前显示设备的屏幕分辨率。
步骤6:设定组成初始二维网格的单元网格像素值,基于步骤5获取的屏幕分辨率,计算出步骤4中建立的初始三维网格的插值点数Q
其中,Q
步骤7:根据步骤6计算得到的插值点数,采用二次三项式拟合法对步骤4中建立的初始三维网格的顶点水深值进行内插,得到插值点水深值;具体过程如下:
读取初始三维网格的水平或垂直方向的网格顶点,网格顶点读取方向的选取与上述N
对网格顶点采用递推法进行分组:将网格顶点n
对每组中的网格顶点数据采用二次三项式拟合法进行曲线拟合,可以计算出该组网格顶点数据间数量为Q
z=ax
其中,z表示初始三维网格顶点高度值;x表示初始三维网格顶点在与N
步骤8:根据步骤7中获取的插值点水深值构建细分三维网格,保证海底地形的建模更加精准。
步骤9:对细分三维网格映射纹理,实现海底地形成像,获取海底地形曲面图。
实施例2:
本实施例以黄海局部海域为例进行说明,使用的显示设备为普通PC机,具体过程如下:
步骤1:将海底地形的水平面均匀划分为如图2所示的4×4初始二维网格,该网格模型包括32个三角形和25个顶点。
步骤2:读取电子海图头文件,并进行坐标转换,获取离散的水深数据点;利用二次曲面移动拟合法对提取到的水深数据进行内插,将内插得到的如表1所示的的水深值(单位:米)作为初始二维网格顶点高度值,表中,X轴和Y轴间隔均为10米:
表1 初始二维网格顶点高度值
步骤3:根据表1中的初始二维网格顶点高度值,在初始二维网格基础上构建均匀的如图3所示的初始三维网格。
步骤4:使用检测函数window.innerWidth()和window.innerHeight()自动获取当前PC机的屏幕分辨率为800×600像素,即该PC机的水平方向像素值P
步骤5:设定组成初始二维网格的单元网格直角边的像素值α为40,此时,初始三维网格在水平方向的网格数N
步骤6:根据计算所得的插值点数,采用二次三项式拟合法对初始三维网格顶点水深值进行内插,得到如图4所示的插值点水深值数据,图中,实心点为插值点,空心点为初始点;具体的插值点水深值数据(单位:米)如表2所示,表中,X轴和Y轴间隔均为2.5米;其中,内插后得到的细分二维网格如图5所示。
表2 插值点水深值
步骤7:根据表2中的插值点水深值生成如图6所示的细分三维网格,该网格模型包括512个三角形和289个顶点。
步骤8:对海底地形细分三维网格映射纹理,获得如图7所示的海底地形曲面图。
所述实施例为本发明的优选的实施方式,但本发明并不限于上述实施方式,在不背离本发明的实质内容的情况下,本领域技术人员能够做出的任何显而易见的改进、替换或变型均属于本发明的保护范围。
- 一种基于自适应屏幕分辨率的海底地形建模方法
- 一种基于屏幕分辨率自适应调整界面布局的方法及装置