船舶运动算法

Emi*_*nov 2 algorithm geometry path-finding

假设我们有一个长方形的海.它非常大 - 10000x20000.

我们也有岛屿.为简单起见,我们假设它们也是矩形的.我们知道它们的确切位置(坐标).

如果我们在地图上的某个地方有一艘船 - (x1,y1),我们怎样才能找到到地图上另一个点的最短路径(x2,y2)而不经过任何岛屿?

更新:到目前为止,没有任何限制 - 对于船舶或海洋.如果我们可以通过添加一些来简化(和加速)事情 - 这是非常受欢迎的.

路径甚至不一定是最好的 - 例如可以10%折扣 - 完全可以接受.

Tie*_*dil 6

  1. 近似岛屿与2D poligons的边界
  2. 用边连接分离的poligons(以及起点和终点)的顶点(它们不能跨越岛)
  3. 将A*应用于结果图

这样的图形远小于10000x20000网格,让我们在更好的时间内找到更真实的路径

更新:如果岛屿不大,您可以沿着终点方向移动船只并绕过左侧或右侧边界的岛屿