fraktale

Post on 01-Feb-2016

44 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Fraktale. Julia-Mengen die Mandelbrotmenge komplexe Abbildungen. realisiert als JAVA-Applet. Erinnerung: Komplexe Zahlen. z z 2 Beispiel 1: z=2+i. z z 2. Problem: Jede komplexe Zahl verhält sich unter der Abbildung z z 2 anders. Welche Zahlen liegen in einem bestimmten Radius ? - PowerPoint PPT Presentation

TRANSCRIPT

1www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

Fraktale Julia-Mengen

die Mandelbrotmenge

komplexe Abbildungen

realisiert als JAVA-Applet

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

z z2

Beispiel 1: z=2+iz=2+i

Erinnerung: Komplexe Zahlen

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

z z2

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

Problem:

Jede komplexe Zahl verhält sich unter der Abbildungz z2 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.

5www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

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:

6www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

Die Julia-Gefangenenpunktmenge für die Konstante C=-0.5 + 0.5i

nach 0 1 2 18 Iterationen6

7www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

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

8www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

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

9www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

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 alternierendeFarben, ggf. Grundfarben

10www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

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"); }}

11www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

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

12www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

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

13www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

Der Pixelspiel-Algorithmuspublic 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); //Mandelbrotwhile

((z.Betrag()<Grenzbetrag)&&(iteration<IterationDepth)){

z=QuadMap(z);iteration++;

}iteration=0;if (z.Betrag()<Grenzbetrag)

g.fillRect(x,y,1,1);

}}

}

14www.tfh-berlin.de/~s680132 StefanAdolf@tfh-berlin.de

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

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

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

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

top related