更改FloodFill算法得到的Voronoi区域的两个数据点?
-
21-09-2019 - |
题
我有一个网格与两分。我想计算的金额广场前的其他每个点都可以到达。目前我实现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等。
不隶属于 StackOverflow