问个地形显示的菜鸟问题

ROBOTECH_ER 2008-09-16 06:24:01

很多地形显示的算法,不管是四叉树、ROAM 还是 ChunkLOD,都是现实的简单的 xyz 坐标 xy 是平面坐标 z是高程数据,

但是现在手头上的地形数据是大地坐标系( 精度、纬度、高程 ,84椭球坐标 ),是椭球面的数据而不是平面的 。为了使用四叉树的算法显示某个地形,怎样进行坐标转换最合适?

Thanks In Advance!!
...全文
140 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
引力场变动源 2008-09-18
  • 打赏
  • 举报
回复
印象中并没有完全精确的算法,而且如果是地球表面的高度数据的话,基于上面那个“球面在足够小的范围内可以近似为平面”的假设,对于一下快地形来说,误差并不算很大的。

要想完全精确的话,大概可以在曲面上构建地形,那样的话,的确可以一一对应并且保持一定的精确度,但是我没有实践过,所以没有什么发言权,有兴趣的话,可以探索一下。
ROBOTECH_ER 2008-09-17
  • 打赏
  • 举报
回复
十分感谢Silenker 大哥!

但是这么转换就是把椭球大地上的曲线拉直了,应该会有误差吧。

精度要求高的时候是不是还是要用大地坐标到地心直角坐标的转换,再由地心直角坐标转换到平面坐标?但是大地坐标是曲面座标不能直接对应XZ是平面坐标XZ是平面坐标,是不是插值生成等间隔的平面坐标?最常用的方法是什么呢?
引力场变动源 2008-09-16
  • 打赏
  • 举报
回复
首先在大多数程序中,XZ是平面坐标,Y是高度数据,因为这样的坐标系是最自然的。
然后经度纬度之类的数据转换到直角坐标系的话,因为在球面上,经线和纬线是垂直的,所以可以自然的选择赤道为X轴,本初子午线为Y轴进行转换。任意一条纬线和经线的交点在这个坐标系中的坐标就是(纬线与赤道之间的球面距离(圆周的一部分),经线与本初子午线之间的球面距离(也是圆周的一部分))

这样处理的话,就可以近似的把球面地形转换为平面地形了。

另外大概也可以根据下面这个假设来进行变换,即球面在足够小的范围内可以近似的看成是平面。不过具体怎么操作,我也不明确^^

8,325

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧