-1
내 paiting/coloring features.Pan 내 홍수 채우기 알고리즘을 어떻게 설명하고 내 작품을 어떻게 작동합니까? 홍수 채우기 대기열입니까? 그리고 큐의 의미는 무엇입니까 (이 알고리즘에서)?홍수 채우기 설명
public class FloodFill {
public void floodFill(Bitmap image, Point node, int targetColor,
int replacementColor) {
int width = image.getWidth();
int height = image.getHeight();
int target = targetColor;
int replacement = replacementColor;
if (target != replacement) {
Queue<Point> queue = new LinkedList<Point>();
do {
int x = node.x;
int y = node.y;
while (x > 0 && image.getPixel(x - 1, y) == target) {
x--;
}
boolean spanUp = false;
boolean spanDown = false;
while (x < width && image.getPixel(x, y) == target) {
image.setPixel(x, y, replacement);
if (!spanUp && y > 0
&& image.getPixel(x, y - 1) == target) {
queue.add(new Point(x, y - 1));
spanUp = true;
} else if (spanUp && y > 0
&& image.getPixel(x, y - 1) != target) {
spanUp = false;
}
if (!spanDown && y < height - 1
&& image.getPixel(x, y + 1) == target) {
queue.add(new Point(x, y + 1));
spanDown = true;
} else if (spanDown && y < height - 1
&& image.getPixel(x, y + 1) != target) {
spanDown = false;
}
x++;
}
} while ((node = queue.poll()) != null);
}
}
}
당신이 알고 싶다 : 여기
구현에 대한 링크입니까? 현재 화면과 색상의 위치를 기반으로 비트 맵으로 그리는 중입니다. –자, 정확히 웨스틴이 총알로 별도로 주문할 수 있습니까? –
어떤 종류의 홍수 필을 사용하고 있는지 알고 싶습니다. –