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
 
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Buddhabrot

  Alt 29. Sep 2005, 04:24
Schönes Programm Mit Fraktalen triffst du bei mir immer den richtigen Nerv.

Ich habe an dem Teil mal ein wenig gefummelt. Es ist nun erheblich schneller. Folgende Dinge habe ich geändert:
  • Du hast jeden Punkt 2 Mal iteriert. Ein mal um zu sehen ob er escaped, und das 2. Mal wenn nötig für die Darstellung. Ich habe es nun so gemacht, dass bei der Escape-Berechnung alle Punkte in einem Array schon gespeichert werden, so dass im Falle des Zeichnens nur noch das Array durchgegeangen wird. Das spart unheimlich!
  • Sämtliches "Extended" und "Int64" rausgeschmissen. Wir brauchen keine hoch wissenschaftliche Genauigkeit. Das ganze ist reines Eye-Candy, und einen sichtbaren Unterschied gibt's nicht. Gerade das Rechnen mit Extended ist (gegenüber Single wie jetzt) eine sehr starke Bremse.
  • Ich habe das mit dem Random entfernt. Jetzt wird das Bild Pixelweise durchlaufen, die diese dann als Startwerte "c" umrechnet. "Buddahiterationen" wurde zu "Genauigkeit", womit sich nun einstellen lässt ob nun pro Pixel 1 (1) oder pro Pixel 2 (2) Samples itereiert werden sollen etc. (sind Floats, also gehts auch < 1). Das führt zudem zu einer symmetrischen Darstellung, auch bei kleiner Genauigkeit.
  • Umstellung auf Graphics32. Das aber eigentlich nur, weil ich es lieber mag als mit Scanline rumzudoktern
  • Diverse Aufrufe von "StrToX" in Schleifen aus der Schleife raus gezogen, und im Vorhinein in passende Variablen geschrieben. Auch nicht zu unterschätzen beim Speed . (Bei der Farbberechnung hab ich für Methode 1 die Editfelder ganz raus gelassen, und fix 255 eingebaut. Das war, weil ich zu faul war das in eine Variable zu packen =). Der Unterschied zu vorher ist irre. Die anderen Methoden habe ich im Wesen nicht geändert.)
  • Für die Iterationsberechnungen habe ich meine "QMath.pas" eingesetzt (die auch in meinem CQParser mitspielt). Gibt auch noch mal einen kleinen Boost, da handmade Assembler (macht aber den Kohl nicht fett...).
  • (Code ein wenig Styleguidekonformität verpasst. Macht ihn zur Runtime nicht schneller, aber schneller zu lesen 8))

Und ich fange auch schon wieder zu spinnen an . Man könnte das Teil mit meinem CQParser bauen, und somit ließe sich nicht nur die klassische Mandelbrotmenge mit z0=z1²+c verwursten, sondern man könnte beliebige Formeln nehmen (lassen!). Und mit Juliasets dürfte das doch im Grunde auch gehen...
Ach menno - nun hab ich wieder schlaflose Nächte

Schönen Gruss,
Fabian
Angehängte Dateien
Dateityp: zip buddhabrot_668.zip (267,8 KB, 104x aufgerufen)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
 


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 23:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz