Das Programm sieht ohne meine schlauen Kommentare wie folgt aus:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
/**
* Demo-Applet für Berechnung der Mandelbrotmenge
* @author speerchen
*/
public class Fraktal extends Applet {
/**
* Breite des Bildes in Pixel
*/
short breite = 320;
/**
* Höhe des Bildes in Pixel
*/
short hoehe = 240;
/**
* Linke Kante der Grundfigur
*/
double intervallLinks = -3;
/**
* Untere Kante der Grundfigur
*/
double intervallUnten = -1.875;
/**
* Breite der Grundfigur
*/
double intervallBreite = 5;
/**
* Höhe der Grundfigur
*/
double intervallHoehe = 3.75;
/**
* Maximale Rekursionstiefe
*/
short grenzeRekursion = 50;
/**
* Betragsgrenze für Rekursion
*/
double grenzeBetrag = 4;
/**
* Quadrat der Betragsgrenze für Rekursion
*/
double grenzeBetragQuadrat = grenzeBetrag * grenzeBetrag;
/**
* Farbtabelle
*/
Color[] farben = {new Color(0,0,0),
new Color(0,0,64), new Color(0,0,85), new Color(0,0,106), new Color(0,0,127), new Color(0,0,148),
new Color(0,0,170), new Color(0,0,191), new Color(0,0,212), new Color(0,0,233), new Color(0,0,255),
new Color(6,6,249), new Color(12,12,243), new Color(19,19,236), new Color(25,25,230), new Color(31,31,224),
new Color(38,38,218), new Color(44,44,211), new Color(51,51,204), new Color(57,57,198), new Color(63,63,192),
new Color(70,70,185), new Color(76,76,179), new Color(82,82,173), new Color(89,89,166), new Color(95,95,160),
new Color(102,102,153), new Color(108,108,147), new Color(114,114,141), new Color(121,121,134), new Color(127,127,128),
new Color(133,133,122), new Color(140,140,115), new Color(146,146,109), new Color(153,153,102), new Color(159,159,96),
new Color(165,165,90), new Color(172,172,83), new Color(178,178,77), new Color(184,184,71), new Color(191,191,64),
new Color(197,197,58), new Color(204,204,51), new Color(210,210,45), new Color(216,216,39), new Color(223,223,32),
new Color(229,229,26), new Color(235,235,20), new Color(242,242,13), new Color(248,248,7), new Color(0,0,0)};
/**
* Bildaufbau
*/
public void paint (Graphics Bild) {
for (int pixelY = 0; pixelY < hoehe; pixelY++) {
double y = intervallUnten + intervallHoehe - intervallHoehe * pixelY / hoehe;
for (int pixelX = 0; pixelX < breite; pixelX++) {
double x = intervallLinks + intervallBreite * pixelX / breite;
int zaehler = 0;
double gliedX = 0;
double gliedY = 0;
double gliedXQuadrat = 0;
double gliedYQuadrat = 0;
do {
double hilfX = gliedX * gliedY;
gliedX = gliedXQuadrat - gliedYQuadrat + x;
gliedY = hilfX + hilfX + y;
gliedXQuadrat = gliedX * gliedX;
gliedYQuadrat = gliedY * gliedY;
zaehler++;
} while (zaehler < grenzeRekursion
&& gliedXQuadrat + gliedYQuadrat < grenzeBetragQuadrat);
Bild.setColor (farben[zaehler]);
Bild.drawLine(pixelX, pixelY, pixelX, pixelY);
}
}
}
}