From f92dcfbbce3d2057e39314312deed941c22881f5 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 2 Jun 2015 09:41:17 +0200 Subject: Start week15 --- Week15 Mandelbrot/src/mandelbrot/GridView.java | 63 ++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Week15 Mandelbrot/src/mandelbrot/GridView.java (limited to 'Week15 Mandelbrot/src/mandelbrot/GridView.java') diff --git a/Week15 Mandelbrot/src/mandelbrot/GridView.java b/Week15 Mandelbrot/src/mandelbrot/GridView.java new file mode 100644 index 0000000..9c43b68 --- /dev/null +++ b/Week15 Mandelbrot/src/mandelbrot/GridView.java @@ -0,0 +1,63 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package mandelbrot; + +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.image.BufferedImage; +import java.awt.image.WritableRaster; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.JComponent; +import javax.swing.JPanel; + +/** + * + * @author Sjaak + */ +public class GridView extends JPanel implements Grid +{ + private BufferedImage gridImage; + private WritableRaster gridRaster; + + + public static final int GRID_WIDTH = 600, GRID_HEIGHT = 600; + public static final int PIXELS_PER_REPAINT = (GRID_WIDTH * GRID_WIDTH) / 20; + + public GridView() { + gridImage = new BufferedImage(GRID_WIDTH, GRID_WIDTH, BufferedImage.TYPE_INT_RGB); + gridRaster = gridImage.getRaster(); + setPreferredSize(new Dimension(GRID_WIDTH, GRID_WIDTH)); + } + + @Override + public void paintComponent(Graphics g) { + super.paintComponent(g); + g.drawImage(gridImage, 0, 0, null); + } + + private int nrOfPixelsSet = 0; + + @Override + public void setPixel(int x, int y, int[] rgb) { + gridRaster.setPixel (x, y, rgb); + nrOfPixelsSet++; + if (nrOfPixelsSet == PIXELS_PER_REPAINT) { + repaint(); + nrOfPixelsSet = 0; + } + } + + @Override + public int getWidth() { + return GRID_WIDTH; + } + + @Override + public int getHeight() { + return GRID_HEIGHT; + } + +} -- cgit v1.2.3