MAN/Liste Fraktale Mandelbrot
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
== Mandelbrot-Menge ==
<code id="4dad6ba53622d">
double reZ, imZ, reZ_minus1, imZ_minus1;
int checkC(double reC,double imC)
{ int i; reZ=0.0; imZ=0.0; reZ_minus1=0.0; imZ_minus1=0.0; //Startort des Floh
for (i=0;i<51;i++) //Anzahl der möglichen Sprünge
{ imZ=2*reZ_minus1*imZ_minus1+imC; //komplexe Gleichung z(n)=z(n-1)^2+C
reZ=reZ_minus1*reZ_minus1-imZ_minus1*imZ_minus1+reC;
if (reZ*reZ+imZ*imZ>4) return i; //Test ob Floh auf runden Tischen mit Radius 2; Rückgabe Sprunganzahl wenn vom Tisch
reZ_minus1=reZ; //Rekursionsschritt
imZ_minus1=imZ;
}
return i; //Rückgabe des Sprunganzahl=50
}
void start(double a,double b,double c)
{ double reC, imC; // Ein Schritt = 0.01 für Veränderung der Konstante C
int i; schritt=c;
canvas.clear(0,0,500,200); // Löschen und Formatieren der Zeichenfläche
canvas.setColor(100,100,100); // Zeichenfarbe
imC=b; //Start für imC=1 in Schritten "schritt" nach unten
for (int y=0;y<200;y++) //Zeilen
{ reC=a; //Start für reC=-4 (links in Schritten "schritt" nach rechts
for (int x=0;x<500;x++) //Spalten
{i=checkC(reC,imC);
if (i==51) canvas.fillRect(x, y, 1, 1); // Punkt zeichnen, wenn Sprungfolge auf Tisch endete
reC=reC+schritt; // nächstes C in Richtung Realanteil
};
imC=imC-schritt; // nächste Zeile
}
}
</code>
<run id="4dad6ba53622d">
start(-4, 1, 0.01); // start
</run>
<canvas></canvas>