/* Victor Wu Mr. Carter DCC OAO Period 6 December 8, 2000 Victor's Purple Page - Mandelbrot set applet Description This applet paints the Mandelbrot set. If a user clicks on the image produced, coordinates are generated which are saved inside static variables of the GetCoorHandler class. The coordinates are also placed inside the text fields of the Julia class. These coordinates are later retrieved as explained in the Julia class. */ import java.awt.*; import java.applet.*; import java.awt.event.*; public class Mandelbrot extends Applet { private static final int RADIUS_IN_PIXELS = 100; private static final int RADIUS_IN_UNITS = 2; public void init() { GetCoorHandler coorHandler = new GetCoorHandler(); addMouseListener(coorHandler); } public void paint(Graphics g) { double xCoor, yCoor; for (int xPixel = 0; xPixel < RADIUS_IN_PIXELS * 2; xPixel++) { xCoor = -1.0 * RADIUS_IN_UNITS + xPixel * (1.0 * RADIUS_IN_UNITS / RADIUS_IN_PIXELS); for (int yPixel = 0; yPixel < RADIUS_IN_PIXELS * 2; yPixel++) { yCoor = RADIUS_IN_UNITS - yPixel * (1.0 * RADIUS_IN_UNITS / RADIUS_IN_PIXELS); double realVal, imgVal, a, b, size; realVal = xCoor; imgVal = yCoor; size = Math.sqrt(realVal * realVal + imgVal * imgVal); int times = 1; while (size < RADIUS_IN_UNITS && times <= 30) { a = realVal; b = imgVal; realVal = a * a - b * b + xCoor; imgVal = 2 * a * b + yCoor; size = Math.sqrt(realVal * realVal + imgVal * imgVal); times++; } setBackground(Color.white); switch (times) { default : g.setColor(Color.white); break; case 1 : g.setColor(new Color(140, 0, 140)); break; case 2 : g.setColor(new Color(0, 0, 125)); break; case 3 : g.setColor(new Color(140, 0, 140)); break; case 4: g.setColor(new Color(0, 0, 125)); break; case 5 : g.setColor(new Color(160, 0, 160)); break; case 6 : g.setColor(new Color(0, 0, 145)); break; case 7 : g.setColor(new Color(160, 0, 160)); break; case 8 : g.setColor(new Color(0, 0, 145)); break; case 9 : g.setColor(new Color(180, 0, 180)); break; case 10 : g.setColor(new Color(0, 0, 165)); break; case 11 : g.setColor(new Color(180, 0, 180)); break; case 12 : g.setColor(new Color(0, 0, 165)); break; case 13 : g.setColor(new Color(200, 0, 200)); break; case 14 : g.setColor(new Color(0, 0, 185)); break; case 15: g.setColor(new Color(200, 0, 200)); break; case 16 : g.setColor(new Color(0, 0, 185)); break; case 17: g.setColor(new Color(220, 0, 220)); break; case 18 : g.setColor(new Color(0, 0, 205)); break; case 19 : g.setColor(new Color(255, 0, 0)); break; case 20 : g.setColor(new Color(0, 0, 205)); break; case 21 : g.setColor(new Color(240, 0, 240)); break; case 22 : g.setColor(new Color(0, 0, 205)); break; case 23 : g.setColor(new Color(240, 0, 240)); break; case 24 : g.setColor(new Color(0, 0, 205)); break; case 25 : g.setColor(new Color(240, 0, 240)); break; case 26 : g.setColor(new Color(0, 0, 225)); break; case 27 : g.setColor(new Color(240, 0, 240)); break; case 28 : g.setColor(new Color(255, 0, 225)); break; case 29 : g.setColor(new Color(255, 0, 255)); break; case 30 : g.setColor(new Color(0, 0, 245)); break; case 31 : g.setColor(new Color(0, 255, 0)); break; } g.drawOval(xPixel, yPixel, 1, 1); } } } }