假设我们有一个长方形的海它相当大-10000x2000。
我们也有岛屿。为了简单起见,我们假设它们也是矩形的。我们知道它们的确切位置(坐标)。
如果我们有一艘船,在地图上的某个地方(x1,y1),我们怎么能找到到地图上另一个点(x2,y2)的最短路径而不经过任何岛屿?
更新:到目前为止还没有任何限制-对船或对海。如果我们可以通过添加一些来简化(并加快)事情,这是非常受欢迎的。
这条路甚至不一定非得是最好的——比如可以打10折——完全可以接受。
最佳答案
邻近岛屿与2D Peligon的边界
将分离的多边形(以及起点和终点)的顶点与边缘连接(它们不得跨越岛屿)
将*应用于结果图
这样的图比10000x2000网格小得多,可以在更好的时间内找到更真实的路径
更新:如果岛屿不大,你可以把船移向终点,绕过岛屿的左右边界