Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Fraktale Julia-Mengen die Mandelbrotmenge komplexe Abbildungen realisiert als JAVA-Applet.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Fraktale Julia-Mengen die Mandelbrotmenge komplexe Abbildungen realisiert als JAVA-Applet."—  Präsentation transkript:

1

2 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 1 Fraktale Julia-Mengen die Mandelbrotmenge komplexe Abbildungen realisiert als JAVA-Applet

3 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 2 z z 2 z=2+i Beispiel 1: z=2+i Erinnerung: Komplexe Zahlen

4 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 3 z z 2

5 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 4 Problem: Jede komplexe Zahl verhält sich unter der Abbildung z z 2 anders. Welche Zahlen liegen in einem bestimmten Radius ? Welche Zahlen fliegen bei einer bestimmten Anzahl von Hintereinanderausführungen der Abbildung aus jedem Radius heraus ? Hintereinanderausführung einer Abbildung wird als Iteration der Abbildung bezeichnet.

6 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 5 Unterteilung der komplexen Zahlenebene in zwei Bereiche: Punkte, die nach einer bestimmten Anzahl n von Iterationen innerhalb eines bestimmten Radius liegen (Gefangenenpunktmenge) Punkte, die außerhalb dieses Radius liegen (Fluchtpunktmenge) Idee des Mathematikers Julia um 1900:

7 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 6 Die Julia-Gefangenenpunktmenge für die Konstante C=-0.5 + 0.5i nach 0 1 2 18 Iterationen 6

8 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 7 Ansätze der Realisierung a) Realisierung als Applikation schlechte Portabilität ins Internet JAVA-Viewer nötig zum Berechnen der Fraktale b) Realisierung als Applet von jeder Maschine aus ausführbar (im Browser) das Programm kann beliebig weitergegeben werden c) Gleichzeitige Realisierung von a) und b) Konflikte zwischen Applet und Frames müssen abgefangen werden höherer Programmieraufwand

9 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 8 Realisierung als Applet Interaktivität des Programms i.A. auf zwei Arten möglich: a) AWT komfortable Steuerung wie in Anwendungen Programm erfordert jedoch hohe Rechenleistung, und da nicht multithreaded programmiert wurde, können während des Zeichenvorgangs keine Events bearbeitet werden !! b) Parameterübergabe aus HTML-Code Individuelle Einstellung möglich, jedoch nur eingeschränkte Interaktivität Dennoch zur Zeit einzige sinnvolle Lösung

10 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 9 Parameter String [][] info = { {PARAM_CRe,"double","Konstante, Realteil"}, {PARAM_CIm, "double", "Konstante Imaginärteil"}, {PARAM_ItDepth, "int", "Iterationstiefe"}, {PARAM_ItBegin, "int","Anfangsiterationszahl"}, {PARAM_ItStep,"int","Iterationsschrittweite"}, {PARAM_xshift,"double","Verschiebung in Re-Richtung"}, {PARAM_yshift,"double","Verschiebung in Im-Richtung"}, {PARAM_xscale,"double","Zoomfaktor x-Aspekt"}, {PARAM_yscale,"double","Zoomfaktor y-Aspekt"}, {PARAM_Colors,"boolean","jeder zweite Schritt Schwarz"} }; Konstante C, benötigt C.Re und C.Im Iterationstiefe, ggf. Iterationsbeginn und Schrittweite Skalierungs- und Translationsfaktoren zum Verschieben der Zeichnung Farbenschalter: Farbverlauf oder alternierende Farben, ggf. Grundfarben

11 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 10 Klasse CNumber class CNumber // COMPLEX NUMBERS { public double Re; public double Im; CNumber () { this(0.0,0.0); } CNumber (double r, double i) { Re=r; Im=i; } public double Betrag() { return Math.sqrt(Re*Re+Im*Im); } public String toString(){ return (Re+"+"+Im+"i"); } }

12 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 11 public void paint(Graphics g) { double farbwechsel=0; for (int i=iteration; i<totalDepth;i+=itStep) { if (Cycle==true) { farbwechsel+=(255.0d*(1.0d/(totalDepth))); farbe =new Color((int)(farbwechsel),0,0); } else { if (i%2==0) { farbe=Color.black; } else { farbe=Color.red; } } g.setColor(farbe); showStatus("Iteration Nr."+i+ "; Colormode:"+Cycle); Julia (i,g); } Paint

13 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 12 Colormode : Schattiert oder zweifarbig ? schattierte Darstellung: mit jedem Iterationsschritt wird der R-Anteil der Zeichenfarbe um 1 / totalDepth erhöht Cycle-Darstellung: jeder zweite Iterations- schritt wird schwarz gemalt

14 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 13 Der Pixelspiel-Algorithmus public void Julia(int IterationDepth,Graphics g ) { if (C.Betrag()>2.0) Grenzbetrag=C.Betrag(); int iteration=0; for (int y=0;y<600;y++) { for (int x=0; x<600;x++) { CNumber z=new CNumber(); z.Re=(xscale*x)+xshift; z.Im=(yscale*y)+yshift; // z=QuadMap(Null); //Mandelbrot while ((z.Betrag()<Grenzbetrag)&&(iteration<IterationDepth)) { z=QuadMap(z); iteration++; } iteration=0; if (z.Betrag()<Grenzbetrag) g.fillRect(x,y,1,1); }

15 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 14 Erweiterung: die Mandelbrotmenge Betrachtung der Parameter, bzw. der verschiedenen Abbildungen, die eine Julia- Menge erzeugen. M ={C | Julia-Menge ist stetig für C} Startwert der Iteration wird als C gewählt und in die Abbildung mit übernommen Die Mandelbrotmenge ist eine Landkarte für stetige (zusammenhängende) Julia-Mengen

16 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 15

17 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 16

18 www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de 17


Herunterladen ppt "1 Fraktale Julia-Mengen die Mandelbrotmenge komplexe Abbildungen realisiert als JAVA-Applet."

Ähnliche Präsentationen


Google-Anzeigen