在给定地形的情况下生成水流图的算法

计算科学 流体动力学 计算物理学
2021-12-24 03:20:27

我在 GameDev Stack Exchange 上发布了同样的问题,但不幸的是我没有得到任何回复。所以我要在这里发布(并改写)它。希望我能得到答案!

我有一个地形(以网格/元素的形式),我想指出水如何在地形中流动,受到重力和地形条件的影响(当然)。

这样做的一个粗略的方法是取每个网格元素,然后从最高点到最低点绘制水流方向,但我认为这会导致很多难看的箭头虽然可以大致指向正确的方向,但是从整体上看真的不好看。

是否有一种算法,或者甚至更好的现有代码实现(以带有 Windows DLL 的文档齐全的 API 或开源源代码的形式),它允许我以优雅、直观的方式生成水“流图”,好看吗?

2个回答

这是地貌和水文建模以及地貌测量和地形分析领域中一个经过充分研究的问题。

为了可视化,通常计算流量累积。如果地形的每个元素都被视为对流量的贡献值为 1,则流量累积是通过给定元素的所有流量的总和。对风景的描述可能如下所示:

流量积累

有几种不同的流路由方法你描述的那个被称为D8。下面描述了一些其他的。

不同的流路由方法

我的库RichDEM中提供了执行上述操作的算法以及对适当参考的引用。

有一个名为 IBER 的程序可以满足您的要求: http ://www.iberaula.es/space/53/modules

您可以在这里免费下载:http: //www.iberaula.es/space/54/downloads