求opengl 读取、显示 dem 的源代码(高分奖励、好的话再加分)

来源:百度知道 编辑:UC知道 时间:2024/09/25 18:27:15
本人初入GIS 专业,以前都没有接触过,现有一个课题要求使用usgs的 gtopo30 格式的dem 要求实现dem 的读取、三维显示。

多方查阅资料,都是笼统性质的概述,感觉始终没有头绪。不知哪位大侠可以发一份源代码给我学习学习?我的邮箱: crazyxhz@163.com

如果不方便发源代码,可否推荐一下学习这方面的知识应该如何下手,本人c++和opengl 也是刚起步,不敢说精通。而且看了很多这方面的论文,书籍,始终感觉没有头绪啊。

读dem与三维显示是两码事。

dem只含网格点上的数值。二进制文件。数据按地理上的行排列,第1行完了是第2行,第2行完了是第3行,...直到最后一行。
每个数是 short int, 也就是 16 bits (2个bytes).

dem 的 short int 是 big endian. 如果 在 PC 上使用,你要交换2个bytes的顺序,例如依次读入的 byte
byte1 byte2 byte3 byte4 byte5 byte6 。。。
你要两两交换成 byte2 byte1 byte4 byte3 byte6 byte5
再构成 short int,short int ,short int 。。。。

到底这个瓦片的地理数据有几行几列等等,你要下载它的 Header File (.HDR)
里面有
BYTEORDER,LAYOUT,
NROWS, NCOLS,
NBANDS,NBITS, BANDROWBYTES,
TOTALROWBYTES,
BANDGAPBYTES, NODATA,
ULXMAP, ULYMAP,
XDIM, YDIM,
换算成 经纬度或投影成 x,y, 你需要 (.HDR)

OPENGL 画 3 维图很简单,你有了 每行每列的xyz,很好画。

看一下nehe的openGL教程吧 这貌似是目前最好的openGL教程
每一章都是具体的例子(代码)加概念性讲述 有很多实例