Category Archives: Mandelbrot

Creating Mandelbrot graphics



Introduction

You probably have seen Mandelbrot graphics. Mandelbrot graphics have taken a huge flight the last years. Especially in animated movies like the ones from pixar studio’s.

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.image.*;

// Instantiate this class and then use the draw()
// method to draw the generated on the graphics
// context.
public class  {
    // Holds the generated image
    Image image;

    // 16-color model; this method is defined in
    // Creating an Image from an Array of Color-
    // Indexed Pixel Values
    ColorModel colorModel = generateColorModel();
    public (int width, int height) {
        // Initialize with default location
     this(width, height, new
     Rectangle2D.Float(-2.0f, -1.2f, 3.2f,
     2.4f));
   }

    public (int width, int height,
    Rectangle2D.Float loc) {
     //Generate the pixel data; this method is
     //defined in
        // Creating an Image from an Array of
        // Color-Indexed Pixel Values
        byte[] pixels = generatePixels(width,
        height, loc);

        // Create a data buffer using the byte
        // buffer of pixel data.
        // The pixel data is not copied; the data
        // buffer uses the byte buffer array.
        // DataBuffer dbuf = new
        DataBufferByte(pixels, width*height, 0);

        // The number of banks should be 1
        int numBanks = dbuf.getNumBanks(); // 1

        // Prepare a sample model that specifies
        // a storage 4-bits of
        // pixel datavd in an 8-bit data element
        // int bitMasks[] = new int[]{(byte)0xf};
        SampleModel sampleModel = new
        SinglePixelPackedSampleModel(
        DataBuffer.TYPE_BYTE, width, height,
        bitMasks);

        // Create a raster using the sample model
        // and data buffer
        WritableRaster raster = 
        Raster.createWritableRaster(sampleModel,
        dbuf, null);

        // Combine the color model and raster
        // into a buffered image
        image = new BufferedImage(colorModel,
        raster, false, 
        null);//newjava.util.Hashtable());
    }

    public void draw(Graphics g, int x, int y) {
        g.drawImage(image, x, y, null);
    }
}