2017-10-14 15 views
-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); 
     } 
    } 
} 
+0

당신이 알고 싶다 : 여기

구현에 대한 링크입니까? 현재 화면과 색상의 위치를 ​​기반으로 비트 맵으로 그리는 중입니다. –

+0

자, 정확히 웨스틴이 총알로 별도로 주문할 수 있습니까? –

+0

어떤 종류의 홍수 필을 사용하고 있는지 알고 싶습니다. –

답변