我有一个网格与两分。我想计算的金额广场前的其他每个点都可以到达。目前我实现FloodFill-Algoritm,其可以计算平方的一个点可达到的量。

我怎样才能改变这种算法做了两个点simaltaneuosly或“泛滥”之后,另一个至少一个?

有帮助吗?

解决方案

你说的“每个点都可以在另一个之前达到”呢?

在我看来像你需要一个BF搜索。使用一个FIFO队列,如下所示:

让p1和p2是两个点的位置。

令f是在队列中和升最后的第一个元素。最初F = 0,L = 1,设q是队列中。

Q[f] = p1
Q[l] = p2
while ( f <= l )
{
   poz = Q[f];
   ++f;

   for each neighbour poz' of poz
      if poz' hasn't been marked yet
      {
         mark poz'
         add poz' to Q: Q[++l] = poz
      }
}

Q将需要网格(列x栏)的大小。您可以使用两个矩阵:一个与位置P1可以达到和其他与位置P2可以达到,或者你可以用一个矩阵和纪念广场P1到达与正数和的平方P2负数达到。如果你有兴趣,他们遇见,你只需要检查,如果你即将从负值标志着正值(POZ负和POZ”阳性)或周围的其他方式。这基本上会做你的洪水轮番:从P1洪水一平方,然后从P2,然后从P1,然后从P2等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top