2017-10-14 4 views
-1

Ich arbeite mit meinem Projekt mit paiting/coloring features.Kann jemand diesen Flood-Fill-Algorithmus erklären und wie das funktioniert? Ist diese Flutfüllwarteschlange? und was bedeutet Warteschlange (in diesem Algorithmus)?Beschreibung der Floodfill

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

Was möchten Sie wissen? Momentan zeichnen Sie eine Bitmap, basierend auf der Position auf dem Bildschirm und der Farbe. –

+0

Ok, was genau ist dein Westin, kannst du ihnen bitte separat in die Kugeln gefallen –

+0

Ich möchte wissen, welche Art von Flutfüllung verwendet wird. –

Antwort

Verwandte Themen