嘿,这是正确的,但在与4-way进行比较后,我找不到任何差异……如果我上交这篇文章,它会被认为是实现8向泛洪算法的正确方法吗?一个是/否的答案就足够了,但我想在继续之前我应该先请教专家
private void flood8(int col, int row, Color startColour) {
if (startColour.equals(getPixel(col, row))) {
setPixel(col, row);
// this bit makes the animation work by
// drawing intermediate results, and slowing the updates down
synchronized (this) {
draw();
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
}
// now we call the routine recursively for each neighbour
// the "guard" surrounding each call ensures that we do
// not try to keep going past the edge of the raster
if (col + 1 < COLS) {
flood4(col + 1, row, startColour);
System.out.println("Position1 " + col + ", " + row );
}
if (col - 1 >= 0) {
flood4(col - 1, row, startColour);
System.out.println("Position2 " + col + ", " + row );
}
if (row + 1 < ROWS) {
flood4(col, row + 1, startColour);
System.out.println("Position3 " + col + ", " + row );
}
if (row - 1 <= 0) {
flood4(col, row - 1, startColour);
System.out.println("Position4 " + col + ", " + row );
}
if (col + 1 < COLS && row + 1 < ROWS) {
flood4(col + 1, row, startColour);
System.out.println("Position1 " + col + ", " + row );
}
if (col + 1 < COLS && row - 1 >= 0) {
flood4(col - 1, row, startColour);
System.out.println("Position2 " + col + ", " + row );
}
if (row - 1 >= 0 && row + 1 < ROWS) {
flood4(col, row + 1, startColour);
System.out.println("Position3 " + col + ", " + row );
}
if (row - 1 >= 0 && row - 1 >= 0) {
flood4(col, row - 1, startColour);
System.out.println("Position4 " + col + ", " + row );
}
}
}感谢您的阅读
发布于 2013-03-21 06:10:56
将几条评论转换为答案,将其从“未回答”队列中提取出来。社区维基,所以请随意添加。
这会被认为是实施8向泛洪算法的正确方法吗?
可能不会,原因如下:
flood4,而正确的递归应该再次调用flood8。https://stackoverflow.com/questions/15533287
复制相似问题