AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Buddhabrot
Thema durchsuchen
Ansicht
Themen-Optionen

Buddhabrot

Ein Thema von Eichhoernchen · begonnen am 28. Sep 2005 · letzter Beitrag vom 12. Okt 2005
Antwort Antwort
Seite 3 von 4     123 4      
Eichhoernchen
Registriert seit: 22. Apr 2004
Es ist noch kein fertiges Programm was ich euch hier Präsentieren möchte, es sind eher Codeschnipsel mit nem schnell gebastelten Programm zusammen!

Und zwar geht es um die Buddhabrotmenge...(nicht Butterbrot)

Es ist ein Fraktal(denke ich zumidest, ist ja schwer zu definieren)

Hier estmal ein paar Bilder wie das aussieht:
BILD1 (Gefärbt)
Bild2
Bild3
Bild4
Missglückter färbeversuch

Den Namen hat es wegen seiner Buddha ähnlichen Form.
Also ich finde das recht cool.

So erstmal zum Buddhabrot, es hat was mit der Mandelbrotmenge zu tun, wie man glaub ich sehen kann.

Und zwar ist die Buddhabrotmenge sowas wie eine Karte der Punkte C der Mandelbrotmenge die Divergieren(d.h. nicht zur Menge gehören).
Als erstes sucht man sich ein zufälliges C, danach lässt man dieses C den Mandelbrotmengen Algorithmus durchlaufen, wenn das C nach N Iterationen noch zur Menge gehört, wird ein neues C gesucht und von vorne gestartet, wenn das C aber nicht dazu gehört, wird die Iteration wiederholt, und alle Atraktoren, die Punkte die z anspring( z = z² + c) werden markiert, bzw. das array an dieser Stelle wird um 1 erhöht.

Leider entstehen erst brauchbare Bilder wenn man dies sehr oft tut. Bei ca 5 Millionen Iterationen des Hauptalgorithmus, also nicht von der Mandelbrotmenge entsteht ein brauchbares schwarz/weiß Bild. Wenn man jetzt noch gern ein farbiges Bild hätte benötigt man gleich 3 Arrays (r, g, b). Für farbige Bilder sind Fluchtiterationen(die Iterationen der Mandelbrotmenge) deutlich höher zu setzen als für schwarz/weiß Bilder. Bsp.: 10000 Fluchtiteratioen, wenn der Punkt C unter 100 Iterationen divergiert gehört er zum Rot teil der Menge und das Rot array wird erhöht. Wenn C unter 1000 und über 100 Iterationen divergiert gehört C zum Gelb teil und das Gelb array wird erhöht. Und das Blaue bei 10000 und > 1000.
Anschließend wird nur noch duch ein einfaches verfahren die arrays als r, g, b Teil eines Bildes dargestellt.

Für grobe Bilder wie Bild3 oder Bild2 kann man mit einer Rechenzeit von ca 10-20 Minuten rechnen(AMD 3000+) mit Bildern wie Bild 1 muss man schon mit 1,5 Stunden Rechenzeit rechnen. Und das Bild was ich zur Zeit berechne ist schon seit 3 Stunden am Rendern (und noch nichtmal uir hälfte fertig).

Naja ihr könnt euch ja mal den Code anschauen, ich habe noch andere Färbeversuche jetzt im Programm, diese sollten aber kein Problem sein wegzudenken!
Angehängte Dateien
Dateityp: zip buddhabrot_174.zip (552,8 KB, 186x aufgerufen)
 
Eichhoernchen

 
Turbo Delphi für Win32
 
#21
  Alt 30. Sep 2005, 18:07
Hmm ich bekomme immer wenn ich ne 2 Buddhabrotmenge berechnen will ne Exception, ich weiß aber nicht woran es liegt!

Wisst ihr es vielleicht?
Jan
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#22
  Alt 30. Sep 2005, 18:32
Japp. Den selben Effekt hatte ich bei meinem Umbau auch

Du setzt FAttraktors (bei mir FOrbits) auf die Länge N, und greifst aber später auch auf das Element N zu, dass ja garnicht existiert. Also entweder das Array um eins größer machen, oder die Schleife um eins kürzer. Klassischer Fehler. Passiert doch jedem immer wieder gern

Bei mir hat's sogar schon am Ende der Berechnung beim ersten Versuch geknallt.


Gruss,
Fabian
Fabian K.
  Mit Zitat antworten Zitat
Eichhoernchen

 
Turbo Delphi für Win32
 
#23
  Alt 30. Sep 2005, 18:40
Ich dachte mir schon das es was mit dem ollen Array zu tun hat!

Danke *schnell änder*


Edit: Jetzt klappts, ich trottel
Jan
  Mit Zitat antworten Zitat
Torpedo
 
#24
  Alt 1. Okt 2005, 21:36
Das Programm gefällt mir

Wenn die Genauigkeit auf 0 steht, sollte man abbrechen, sonst:


---------------------------
Project1
---------------------------
Ungültige Gleitkommaoperation.
---------------------------
OK
---------------------------
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#25
  Alt 7. Okt 2005, 21:28
Mit etwas Verspätung stelle ich mal meine Version vor.
Was mich etwas überrascht hat, ist, dass das Programm etwa dreimal so schnell wie dizzys Version ist.
Die Oberfläche ist in zwei Teile aufgeteilt: Links die Berechnung des Arrays, rechts die Darstellung (entweder per PixelF oder StretchTransfer - konnte mich nicht entscheiden *g*). Ich hänge mal meinen aktuellen Desktophintergrund an.
Miniaturansicht angehängter Grafiken
buddhabig_155.png  
Angehängte Dateien
Dateityp: exe project1_376.exe (599,0 KB, 36x aufgerufen)
Sebastian
  Mit Zitat antworten Zitat
Eichhoernchen

 
Turbo Delphi für Win32
 
#26
  Alt 7. Okt 2005, 21:55
Hey, das gefällt mir!
Ist aber nicht mit den Delphi eigenen Bitmap funktionen?! oder?

Ist die Berechnung mit zufälligen C's oder wird der Bildschirm abgegangen?

Wenn du Lpust hast kannste ja auch mal den Source posten, würde mich schon interessieren!
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#27
  Alt 8. Okt 2005, 17:36
Zitat von Eichhoernchen:
Hey, das gefällt mir!
Ist aber nicht mit den Delphi eigenen Bitmap funktionen?! oder?
Wie in dizzys Version mit der GR32-Lib.
Zitat:
Ist die Berechnung mit zufälligen C's oder wird der Bildschirm abgegangen?
Ebenfalls wie in dizzys Version für jedes Pixel.
Zitat:
Wenn du Lpust hast kannste ja auch mal den Source posten, würde mich schon interessieren!
Ich stelle ihn mal rein, auch wenn dir zum Kompilieren ein paar Units fehlen werden.
Angehängte Dateien
Dateityp: zip unit1_146.zip (5,1 KB, 22x aufgerufen)
Sebastian
  Mit Zitat antworten Zitat
Eichhoernchen

 
Turbo Delphi für Win32
 
#28
  Alt 9. Okt 2005, 19:18
hey das hab ich ja noch gar nicht gesehen das man da noch reinzoomen kann bei dir, das ist ja überlst geil mit dem kleinen Image wo die mandelbrotmenge drauf ist, *auch haben will*, wie geht das das die Berechung da so fix ist? da kann ich ja fast realtime zoomen?
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#29
  Alt 9. Okt 2005, 20:50
Danke. Schau dir mal diesen Thread von mir an, besonders die Demo.
Sebastian
  Mit Zitat antworten Zitat
Eichhoernchen

 
Turbo Delphi für Win32
 
#30
  Alt 9. Okt 2005, 21:31
Das ist ja absulut cool *runterladundinprogrammeinbau*
Jan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz