Aufgabe 8.6: Fraktale

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabe 8.6: Fraktale
Hi,

ich komme hier nicht weiter bz.w ich komme gar nicht rein! Aus der gegebenen Website, kann ich (fast) nichts rauslesen, was für die Aufgabe zu gebrauchen wäre… Ich scheitere schon bei der a)!!! :-/
Was soll ich machen und wie soll ich das machen? Ermittle die Iterationszahl… Wunderbar genau beschrieben! :huh:

Hat jemand eine Ahnung wie das geht, bzw. wie ich hier weiterkomme? Will die Aufgabe lösen, weil’s endlich mal ne coole Aufgabe ist…
(Hinweise zu b), c), d) sind auch willkommen :wink: )

THX!


Im Aufgabenblatt wird auf eine URL verwiesen, wo das Ganze erklärt wird.

Nachtrag: Ups, überlesen…


Tja, wie schon oben erwähnt… Aus der Website erschließt sich mir nicht, was die Methode machen soll! :confused:
Trotzdem thx :wink:


Naja, du berechnest da eine komplexe Zahlenfolge, indem du [m]z_0[/m] quadrierst, [m]c[/m] aufaddierst, das wieder quadrierst, wieder [m]c[/m] aufaddierst, etc.
Das machst du so lange, bis entweder der Betrag der Zahl größer wird als [m]MAXLENGTH[/m], oder du [m]maxIter[/m] Iterationen durchgeführt hast. Was du zurückgibst, ist die Zahl der tatsächlich durchgeführten Iterationen.
Klar? :slight_smile:


D.h. ich checke in der ersten Methode (berechneIterationen) nur welche der beiden kleiner ist…?

Ok, thx, dann komm ich schon mal weiter… Ich meld mich, wenn’s wieder hakt :smiley:


[quote=Michi D.]
D.h. ich checke in der ersten Methode (berechneIterationen) nur welche der beiden kleiner ist…?[/quote]

Nein, du tust in der Methode am besten genau das, was ich oben beschrieben habe, nämlich die Berechnung der Zahlenfolge durchführen, und stellst dabei fest, wie viele Iterationen du für den Punkt benötigst… :wink:


hier wirds gut erklärt, finde ich:

und


Danke, die Seite ist schon mal viel besser als die Gegebene… (und besser als die deutsche Wikipediaseite zum Thema ^^)

Denke ich warte mal auf meine Übung, vllt wird da ja nochwas dazu erklärt…


du machst einfach nen iterationszähler, ne while schleife, die immer z0 += c berechnet, und die abbricht, wenn die iterationen größer >max_iter sind, oder wenn z0.abs() > MAX_LENGTH, oder wie die konstante aus dem interface heisst, ist.
die methode gibt dann die anzahl der iterationen zurück.
Und in der anderen methode iterierst du über das gesamte pixelfeld, und speicherst die farbe, nämlich farbpalette[iterationen] in dein 2D-pixelarray.


z_n = z_{n-1}^2 + c


bekomm nur nen besch******* schwarzen Bildschirm… Dabei hab ich jetzt im Prinzip Wikipedia abgetippt! (nachdem der eigene Code immer noch nicht funktioniert)

Wofür brauch ich eigentlich bei der b) die komplexen Zahlen und die a)??? Und wth soll das mit dem Wertebereich von -1 bis +1 und -i bis +i sein???

Und „start“ ist dann z_0??? Oder z_n? Sollte es nicht eher z_n = z_{n+1}^2 + c sein?


ah sorry, natürlich.

Nein Michi, stimmt schon so was neverpanic geschrieben hat. start ist bei der Mandelbrotmenge immer 0 und die schrittweite ist die koordinate.
bei der juliamenge ist start die koordinate und die schrittweite eine vorgegebene konstante.

Der wertebereich heisst nur:
wenn du eine 500x500 feld hast , dann musst du jedem feld eine koordinate von (-1,1] zuweisen . das geht indem du die 2/500 teilst. Das ist dann die schrittweite pro Iteration. die musst du halt in deiner schleife den Complex übergeben . so dass du in deiner schleife die zwar von 0 bis 500 geht, nur complexe zahlen in diesem wertebereich erstellst.


den Kampf mit Java gewonnen…


lol, da haste aber ganz schön was zamgepfuscht :smiley:
du gehst völlig unterschiedliche schrittweiten, drum sieht dein mandelbrot net nach mandelbrot aus :wink:


dann möcht ich mal 2 meiner ergebnisse posten (mit palette Black → White, 200 Abstufungen)

“Apfelmännchen”

“Julia Menge” (mit Step = Angabe auf dem Übungsblatt)


Hier meine Ergebnisse:
http://img189.imageshack.us/img189/7664/mandelbrot.jpg
http://img32.imageshack.us/img32/6246/juliaz.jpg

Ich habe mich nicht an die Vorgaben bezüglich der Startpositionen gehalten (die dargestellten Bereiche sind nicht (-1;1] in x- und (-i;i] y-Richtung), weil ich noch eine Zoomfunktion eingebaut habe.


@neverpanic

schicke bilder! die farben sin wirklich gelungen. könntest du mir eventuell deine CodeSchnippsel mit denen du die Zoomfunktion einbaust zuschicken? bislang muss ich es über nen parameter im konstruktor machen.

thx


Cool…

Thx @ Oliver… hab jetzt die Berechnung endlich verstanden und kann’s jetzt (hoffenlich) selbst coden ^^


[quote=sotsoguk]CodeSchnippsel mit denen du die Zoomfunktion einbaust zuschicken?[/quote]Ja, da liegt das Problem… Schnipsel gibt es da keine; ich habe mir stattdessen basierend auf der Leinwand-Klasse von Blatt 3 eine eigene Klasse gebaut, um die Fraktale darzustellen und darauf JPanel.getInputMap().put(KetStroke keyStoke, Object actionMapKey) und JPanel.getActionMap().put(Object key, Action action) einen Key-Handler gebaut, in dem ich eine interne Variable scale, mit der ich alle Koordinaten multipliziere erhöhe.
Ankucken hier: [Link entfernt]