4

我有一张世界地图的黑白照片。

我将像素转换为由坐标 (i, j) 索引的二进制值网格(0 表示水,1 表示陆地)。现在,假设我在陆地上随机选择一个点,这次是在美国德克萨斯州的某个地方。我想知道我可以到达的所有点的 (i, j) 坐标,而不必穿越水。在这种情况下,它将是整个北美和南美的任何 (i, j)(减去任何周围的岛屿)。

(这背后的动机是我试图在 c 中并行实现 SIR 感染模型。)

非常感谢您的帮助。

编辑:如果有任何近似方法,我也很感兴趣(如果错误地包括了一些小的近海岛屿,我不会过分大惊小怪。),也许是像四叉树这样的网格划分方法?再次感谢。

4

1 回答 1

8

您正在寻找一种洪水填充算法。它可以递归地完成,也可以手动维护堆栈或使用队列。

于 2012-12-26T16:22:47.393 回答