From 85751141b5705dba503b507ab34cc4ee734a9e6a Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 4 Jun 2015 22:33:05 +0200 Subject: Started own version --- Week15 Mandelbrot/src/mandelbrot/Area.java | 27 ------- .../src/mandelbrot/AreaController.java | 22 ------ Week15 Mandelbrot/src/mandelbrot/AreaSelector.java | 41 ----------- Week15 Mandelbrot/src/mandelbrot/ColorChooser.java | 36 ---------- Week15 Mandelbrot/src/mandelbrot/Grid.java | 16 ----- Week15 Mandelbrot/src/mandelbrot/GridFiller.java | 59 ---------------- Week15 Mandelbrot/src/mandelbrot/GridView.java | 63 ----------------- Week15 Mandelbrot/src/mandelbrot/MainWindow.java | 33 --------- Week15 Mandelbrot/src/mandelbrot/Mandelbrot.java | 34 --------- Week15 Mandelbrot/src/mandelbrot/RGBColors.java | 82 ---------------------- Week15 Mandelbrot/src/mandelbrot/Stopper.java | 14 ---- 11 files changed, 427 deletions(-) delete mode 100644 Week15 Mandelbrot/src/mandelbrot/Area.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/AreaController.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/AreaSelector.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/ColorChooser.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/Grid.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/GridFiller.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/GridView.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/MainWindow.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/Mandelbrot.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/RGBColors.java delete mode 100644 Week15 Mandelbrot/src/mandelbrot/Stopper.java (limited to 'Week15 Mandelbrot/src/mandelbrot') diff --git a/Week15 Mandelbrot/src/mandelbrot/Area.java b/Week15 Mandelbrot/src/mandelbrot/Area.java deleted file mode 100644 index 75331e3..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/Area.java +++ /dev/null @@ -1,27 +0,0 @@ -package mandelbrot; - -/** - * - * @author Sjaak - */ -public class Area { - private final double startX, startY, width, height; - - public Area (double x_tl, double y_tl, double width, double height) { - startX = x_tl; startY = y_tl; this.width = width; this.height = height; - } - - public double getX () { return startX; } - public double getY () { return startY; } - public double getWidth () { return width; } - public double getHeight () { return height; } - - public Area zoom (int xul, int yul, int zw, int zh, int tw, int th) { - double zoom_fact = ((double) zw) / tw; - return new Area (startX + (width * xul) / tw, - startY - (height * yul) / th, - width * zoom_fact, - height * zoom_fact); - } - -} diff --git a/Week15 Mandelbrot/src/mandelbrot/AreaController.java b/Week15 Mandelbrot/src/mandelbrot/AreaController.java deleted file mode 100644 index 304eb0f..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/AreaController.java +++ /dev/null @@ -1,22 +0,0 @@ -package mandelbrot; - -/** - * - * @author Sjaak Smetsers - */ -public class AreaController { - GridFiller filler; - Grid grid; - - public AreaController ( GridFiller filler, Grid grid ) { - this.filler = filler; - this.grid = grid; - } - - public void setArea(AreaSelector selector, int x, int y, int w, int h ) { - Area area = filler.getArea().zoom(x, y, w, h, grid.getWidth(), grid.getHeight()); - filler = new GridFiller (grid, area); - filler.fill(); - } - -} diff --git a/Week15 Mandelbrot/src/mandelbrot/AreaSelector.java b/Week15 Mandelbrot/src/mandelbrot/AreaSelector.java deleted file mode 100644 index 3af6fc2..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/AreaSelector.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package mandelbrot; - -import java.awt.Component; -import java.awt.event.MouseEvent; -import javax.swing.event.MouseInputAdapter; - -/** - * - * @author Sjaak - */ -public class AreaSelector extends MouseInputAdapter { - - private Component component; - private AreaController controller; - private Stopper toBeStopped ; - - public AreaSelector(Component component, AreaController controller) { - this.component = component; - this.controller = controller; - component.addMouseListener(this); - } - - @Override - public void mouseClicked(MouseEvent e) { - if ( toBeStopped != null ){ - toBeStopped.tryToStop(); - } - int w = component.getWidth() / 2; - int h = component.getHeight() / 2; - controller.setArea(this, e.getX() - w / 2, e.getY() - h / 2, w, h); - } - - public void setStopper( Stopper stopper ) { - this.toBeStopped = stopper; - } - -} diff --git a/Week15 Mandelbrot/src/mandelbrot/ColorChooser.java b/Week15 Mandelbrot/src/mandelbrot/ColorChooser.java deleted file mode 100644 index c3aa441..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/ColorChooser.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package mandelbrot; - -/** - * - * @author Sjaak - */ -public class ColorChooser { - private int maxIndex; - - public ColorChooser () { - maxIndex = 0; - } - - public void setMaxIndex (int max_index) { - maxIndex = max_index; - } - - public int getColorIndex (double x0, double y0) { - double x = x0, y = y0; - int color_index = 0; - while (x * x + y * y < 4.0) { - double nx = x * x - y * y + x0; - y = 2 * x * y + y0; - x = nx; - color_index++; - if (color_index == maxIndex) { - return -1; - } - } - return color_index; - } -} diff --git a/Week15 Mandelbrot/src/mandelbrot/Grid.java b/Week15 Mandelbrot/src/mandelbrot/Grid.java deleted file mode 100644 index 74b4bd6..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/Grid.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package mandelbrot; - -/** - * - * @author Sjaak - */ -public interface Grid { - void setPixel (int x, int y, int [] rgb); - - int getWidth (); - int getHeight (); -} diff --git a/Week15 Mandelbrot/src/mandelbrot/GridFiller.java b/Week15 Mandelbrot/src/mandelbrot/GridFiller.java deleted file mode 100644 index 1e741a2..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/GridFiller.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package mandelbrot; - -import java.awt.Color; -import java.awt.Graphics; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.swing.SwingWorker; - -/** - * - * @author Sjaak - */ -public class GridFiller { - - private Area area; - private Grid grid; - public static final int MAX_ITERATIONS = 400; - private static final RGBColors rgbColors = new RGBColors(MAX_ITERATIONS); - private static final ColorChooser colorChooser = new ColorChooser(); - - public GridFiller(Grid grid, Area area) { - this.grid = grid; - this.area = area; - colorChooser.setMaxIndex(MAX_ITERATIONS); - } - - public Area getArea() { - return area; - } - - public void fill() { - int grid_w = grid.getWidth(), grid_h = grid.getHeight(); - double area_w = area.getWidth(), area_h = area.getHeight(); - double dx = area_w / grid_w, dy = area_h / grid_h; - - double x = area.getX(); - for (int i = 0; i < grid_w; i++) { - double y = area.getY(); - for (int j = 0; j < grid_h; j++) { - int color = colorChooser.getColorIndex(x, y); - grid.setPixel(i, j, - color == -1 ? RGBColors.BLACK : rgbColors.getColor(color)); - - y -= dy; - } - try { - Thread.sleep( 2 ); - } catch (InterruptedException e) { - System.out.println("Sleeping thread interrupted"); - } - x += dx; - } - } -} diff --git a/Week15 Mandelbrot/src/mandelbrot/GridView.java b/Week15 Mandelbrot/src/mandelbrot/GridView.java deleted file mode 100644 index 9c43b68..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/GridView.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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; - } - -} diff --git a/Week15 Mandelbrot/src/mandelbrot/MainWindow.java b/Week15 Mandelbrot/src/mandelbrot/MainWindow.java deleted file mode 100644 index eba8c3e..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/MainWindow.java +++ /dev/null @@ -1,33 +0,0 @@ -package mandelbrot; - - - -import java.awt.Insets; - -import javax.swing.JFrame; - -/** - * - * @author Sjaak Smetsers - * @version 1.0, 14-03-2013 - */ - -/** - * creates a window to which a GridView panel is added - * - */ -public class MainWindow { - - public MainWindow ( GridView grid ) { - JFrame mainFrame = new JFrame ("Mandelbrot"); - - mainFrame.setLocationRelativeTo(null); - mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - mainFrame.setResizable(false); - mainFrame.setVisible(true); - - mainFrame.add(grid); - mainFrame.pack(); - } - -} diff --git a/Week15 Mandelbrot/src/mandelbrot/Mandelbrot.java b/Week15 Mandelbrot/src/mandelbrot/Mandelbrot.java deleted file mode 100644 index 1980eed..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/Mandelbrot.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package mandelbrot; - -import java.awt.BorderLayout; -import java.awt.Insets; -import javax.swing.JPanel; - - -/* -This class creates an applet for generating Mandelbrot sets. The applet is -meant to be embedded in an HTML page and has hooks to interact with the page. -Functions are provided to allow the user to zoom in and out and to move around -on the surface of the figure. The user can also select from a set of color -schemes. -*/ - -public class Mandelbrot -{ - public static void main(String args[]) { - - GridView grid = new GridView(); - MainWindow mandel = new MainWindow ( grid ); - - Area area = new Area ( -2.5, 2.5, 5, 5 ); - GridFiller filler = new GridFiller ( grid, area ); - AreaController controller = new AreaController ( filler, grid ); - AreaSelector selector = new AreaSelector ( grid, controller ); - filler.fill(); - } - -} \ No newline at end of file diff --git a/Week15 Mandelbrot/src/mandelbrot/RGBColors.java b/Week15 Mandelbrot/src/mandelbrot/RGBColors.java deleted file mode 100644 index 2abd7d5..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/RGBColors.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package mandelbrot; - -/** - * - * @author Sjaak - */ -public class RGBColors { - - private int [][] rgbColors; - - public static final int [] BLACK = new int [3]; - - public RGBColors (int max_color_index) { - rgbColors = new int [max_color_index][3]; - randomPalets (); - randomColorSet (); - - } - - private static final int MAXRGB = 256; - - private static int [][][] palets = { - {{0,0},{1,-1},{0,1}}, - {{1,-1},{1,0},{0,0}}, - {{0,1},{0,1},{1,-1}}, - {{1,-1},{0,0},{1,0}}, - {{0,1},{0,1},{1,0}}, - {{1,0},{1,-1},{1,-1}}, - {{1,0},{0,1},{0,1}}, - {{1,-1},{1,0},{1,-1}} - }; - - private boolean randomBool () { - return Math.random() < 0.5; - } - - void randomPalets () { - for (int p = 0; p < palets.length; p++) { - for (int c = 0; c < 3; c++) { - int cw = randomBool () ? 1 : 0; - int cd = randomBool () ? (cw * -1) : (1 - cw); - palets [p][c][0] = cw; - palets [p][c][1] = cd; - } - } - } - - private void randomColorSet () { - int p_size = rgbColors.length / palets.length; - for (int p = 0; p < palets.length; p++) { - int [][] palet = palets [p]; - int r = palet [0][0] == 1 ? MAXRGB-1 : 0; - int g = palet [1][0] == 1 ? MAXRGB-1 : 0; - int b = palet [2][0] == 1 ? MAXRGB-1 : 0; - - int dr = palet [0][1] * MAXRGB / p_size; - int dg = palet [1][1] * MAXRGB / p_size; - int db = palet [2][1] * MAXRGB / p_size; - - for (int i = 0 ; i < p_size ; i++) { - rgbColors[i + p * p_size][0] = r; - rgbColors[i + p * p_size][1] = g; - rgbColors[i + p * p_size][2] = b; - r += dr; - g += dg; - b += db; - } - } - } - - public int [] getColor (int color_index) { - return rgbColors [color_index]; - } - - public int [] getColor2 (int color_index) { - return rgbColors [color_index]; - } -} diff --git a/Week15 Mandelbrot/src/mandelbrot/Stopper.java b/Week15 Mandelbrot/src/mandelbrot/Stopper.java deleted file mode 100644 index f47a471..0000000 --- a/Week15 Mandelbrot/src/mandelbrot/Stopper.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package mandelbrot; - -/** - * - * @author Sjaak - */ -public interface Stopper { - void tryToStop(); -} -- cgit v1.2.3