From a3c4d590c471ddf79b204c7039a597b4be264ad9 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 28 Apr 2015 13:36:51 +0200 Subject: Initial commit w11 --- Week11 Mandelbrot/src/fractals/ColorTable.java | 69 ++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Week11 Mandelbrot/src/fractals/ColorTable.java (limited to 'Week11 Mandelbrot/src/fractals/ColorTable.java') diff --git a/Week11 Mandelbrot/src/fractals/ColorTable.java b/Week11 Mandelbrot/src/fractals/ColorTable.java new file mode 100644 index 0000000..064bd15 --- /dev/null +++ b/Week11 Mandelbrot/src/fractals/ColorTable.java @@ -0,0 +1,69 @@ +package fractals; + +import java.awt.Color; + +/** + * + * @author Sjaak Smetsers + * @version 1.0. 14-03-2014 + */ +/** + * Converting indexes (ranging from 0 to tableSize) to RGB colors + * + * @author Sjaak + */ +public class ColorTable { + + // a two dimensional conversion array + private int[][] rgbColors; + private int tableSize; + + private static final int MAXRGB = 256; + + public static final int[] BLACK = new int[3]; + + /** + * converts specified color to an rgb array + * + * @param color the color to be converted + * @return the corresponding array of rgb values + */ + private static int[] color2RGB(Color color) { + int[] rgb = {color.getRed(), color.getGreen(), color.getBlue()}; + return rgb; + } + + /** + * creates and fills the table with the specified size + * + * @param tableSize the size of the table + */ + public ColorTable(int tableSize) { + this.tableSize = tableSize; + this.rgbColors = new int[tableSize][3]; + + randomColorSet(); + } + + /** + * fills the table randomly + */ + private void randomColorSet() { + for (int[] color : rgbColors) { + for (int c = 0; c < 3; c++) { + color[c] = (int) (Math.random() * 256); + } + } + } + + /** + * converts an index into an rgb value + * + * @param color_index to be converted + * @return the resulting rgb value + */ + public int[] getColor(int color_index) { + return rgbColors[color_index % tableSize]; + } + +} -- cgit v1.2.3