Kreis zeichnen (mit Pixel angewendet, die in einem Bild mit for-Schleife)

Möchte ich einen Kreis zeichnen (mit 1 oder 2 for-Schleifen) mit der Pixel-position (beginnt oben Links und endet unten rechts)

Habe ich erfolgreich zeichnete ein Rechteck mit dieser Methode:

private void drawrect(int width,int height,int x,int y) {
    int top=y;
    int left=x;

    if(top<0){
        height+=top;
        top=0;
        }
    if(left<0){
        width+=left;
        left=0;
    }

    for (int j = 0; j <width; j++) {
        for (int i = 0; i <height; i++) {
                    pixels[((i+top)*w)+j+left] = 0xffffff;//white color
        }

    }

}

Dem Pixel-array enthält die pixel-index, gefolgt von seiner Farbe.

pixels[index]=color;

Vor, dass ich mit diesem code für "Bild" und "Pixel" ein array (falls dir das hilft)

img = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
pixels = ((DataBufferInt) img.getRaster().getDataBuffer()).getData();

Aber wie kann ich das zeichnen nur die weißen Pixel, wie in diesem Bild, und ignorieren die anderen Pixel?

Pixel-Bild http://oi42.tinypic.com/2u61sud.jpg

  • Sie wollen wahrscheinlich zu Google, "Bresenham-Kreis" für den Algorithmus 🙂
InformationsquelleAutor boyd | 2012-01-25
Schreibe einen Kommentar