我有一张世界地图的黑白照片。
我将像素转换成由坐标(i,j)索引的二值网格(0表示水,1表示土地)。现在,假设我在陆地上随机选取一个点,这次是在美国得克萨斯州的某个地方,我想知道所有我可以到达的点的(i,j)坐标,而不必穿过水。在这种情况下,它将是任何(i,j)在北美和南美(减去任何周边岛屿)。
(这背后的动机是我试图在C中并行实现一个SIR感染模型。)
非常感谢你的帮助。
编辑:我也会感兴趣的是,如果有一些近似的方法(我不太大惊小怪,如果一些微小的离岸岛屿被错误地包括),也许通过网格方法,如四叉树。再次感谢。
最佳答案
你在找一个flood fill algorithm。它可以递归地完成,也可以手动维护堆栈,或者使用队列。