AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Buddhabrot - Theoretische Frage
Thema durchsuchen
Ansicht
Themen-Optionen

Buddhabrot - Theoretische Frage

Ein Thema von Neutral General · begonnen am 9. Okt 2014 · letzter Beitrag vom 12. Okt 2014
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Buddhabrot - Theoretische Frage

  Alt 9. Okt 2014, 20:04
Hallo,

Hatte heute mal Lust ein Programm zu schreiben was ein Buddhabrot generiert.

Laut Algorithmus soll man immer zufällige Punkte auswählen durch die man dann iteriert.
Habe ich gemacht - funktioniert. Aber warum überhaupt zufällig? Könnte man nicht auch genauso gut alle Bildpunkte (mehrmals) von Anfang bis Ende durchlaufen? Was ist der Grund für den Zufall?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Buddhabrot - Theoretische Frage

  Alt 9. Okt 2014, 20:18
Hab da auch keine Erklärung gefunden,
aber du könntest es doch mal ausprobieren?

Zwei Bilder neben-/übereinander legen, wovon Eines mit dem Zufall gefüllt ist
und das Andere bekommt vorgegebene Werte.

Anzahl der Punkte durch 5-10% der Werte des ersten Bildes nehmen und diese Werte dann eben 20-10 Mal durchgehen.
Oder gib dem Ding doch mal einfache Funktionen rein. (Sinus, Sägezahn, Rechteck)
Bei Sinus und Sägezahn vielleicht auch mal mehrere Varianten -> nur eine Schwingung, bzw. mehrere Schwinungen.
$2B or not $2B
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Buddhabrot - Theoretische Frage

  Alt 9. Okt 2014, 21:43
Sieht so aus, als wäre der deutsche Artikel aus dem englischen Artikel übersetzt worden – im Original steht an der Stelle „random“, was in dem Fall wohl „beliebig“ heißen soll. Alle Pixel systematisch durchzugehen und die jeweiligen Koordinaten als Samples zu verwenden ist ja auch gewissermaßen „beliebig“... schließlich liegen dazwischen ja noch unendlich viele andere ebenbürtige Punkte. So interpretiere ich das zumindest.

Geändert von Namenloser ( 9. Okt 2014 um 21:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Buddhabrot - Theoretische Frage

  Alt 10. Okt 2014, 08:54
@Namenloser: Jaaa, aber habe auch einen Artikel auf einem Blog gefunden bei dem sogar vorgeschlagen wird einen besseren Zufallszahlengenerator zu verwenden als den den die meisten RTLs mitbringen:

Zitat:
2. Use a good random number generator. The default random number generators in most compilers have a fairly low period of values before they start repeating the same numbers again. For the Buddhabrot you need a random number function that can return a huge number of random values before they start repeating. A good (and fast) generator I use is the Mersenne Twister.
Aber ich kann mir wie gesagt auch nicht wirklich vorstellen was es für einen Unterschied macht ob/wie zufällig die Punkte sind. letztendlich wird nach einer gewissen Zeit sowieso (fast) jeder Punkt durchlaufen sein und dann hätte man auch ohne Zufall arbeiten können oder nicht?

@himitsu: Ich werde heute Abend bzw. am Wochenende wahrscheinlich mal ein paar Tests dazu machen. Habe gestern erstmal meinen Test-Spaghetticode in ordentlichen Code umgewandelt und heute schau ich mal was es mit dem Zufall auf sich hat.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Buddhabrot - Theoretische Frage

  Alt 10. Okt 2014, 10:15
Ein anderer Zufallsgenerator wird da ja auch nur deswegen angeraten, weil man bei solchen kürzerer Periodenlänge recht früh anfängt die selben Punkte nochmals durchzuiterieren. Auf die Verteilung der Werte bezieht es sich gar nicht.

Ich denke, du müsstest problemlos auch durch ein fixes Raster das Nirvana erreichen können. Das würde ich dann aber deutlich feiner wählen als nur pro Pixel einen Punkt, so ein paar zigtausend bis millionen sollten es schon sein für ansehnliche Bildchen.

Ich habe das mal gemacht als gerade die Core2Duos am Markt waren. Anfangs war ich immer etwas verwundert, warum mein Programm nicht lief. Dann habe ich gemerkt, dass es einfach nur eeeeecht lange gedauert hat, bis man etwas erkennbares zu sehen bekam . Da lief dann die Kiste auch schon mal die Nacht durch für hübsche Varianten. Ich glaube dort aber auch nicht viel optimiert zu haben. Hach, Studium. Da gabs noch Zeit für solche Nettigkeiten
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Buddhabrot - Theoretische Frage

  Alt 10. Okt 2014, 11:12
Momentan mache ich es so dass ich zufällige Punkte auswähle die durch die ich dann X-mal iteriere und das mache ich momentan solange bis der Benutzer keine Lust mehr hat.

http://i.imgur.com/81urIu4.png

Das ist mein 1000 (oder 100?) Iterationen pro Punkt-Bild. Es sieht schon ganz gut aus aber auf Wikipedia sieht das alles irgendwie kräftiger/detailierter aus. Und ich habe das Programm schon ne gute Zeit laufen lassen. Aber ab dem Stand hat sich nicht mehr wirklich was getan. Oder muss ich das 12 Stunden laufen lassen bis die Farben kräftiger werden? Oder liegt es am Delphi Standard-random? Das Bild ist 800x800 Pixel. Mein Array war aber 4x oder 8x größer (für ein schöneres Bild)

Ansonsten läufts ganz gut. Ich probiere es heute mal mit einem festen Raster von Zahlen.

Falls jemand ne Idee hat woran es liegen kann dass mein Buddhabrot (bei gleicher Iterationszahl) weniger detailiert/kräftig ist als das was man auf Wikipedia sieht dann wäre das super
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: Buddhabrot - Theoretische Frage

  Alt 10. Okt 2014, 12:12
Das sieht doch schon ziemlich gut aus! Ich denke das was du mit dem Aussehen meinst liegt mit daran, wie viel Deckung du jedem einzelnen Pixel gibst. Letztlich also nur eine Frage des Mappings des Zählerarrays auf das Bitmap. (Man muss z.B. auch nicht linear mappen. Eine Potenz führt z.B. zu einer Kontrasterhöhung.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#8

AW: Buddhabrot - Theoretische Frage

  Alt 11. Okt 2014, 12:10
Guten Tag Neutral General,
mags Du den Quellcode hier posten?
Ich und sicherlich auch andere Forenteilnehmer, wäre sehr interessiert um mich in der Grafik-Programmierung
weiter zubilden.
Ich benutze Delphi nur aus Hobby.
Mit Gruß
HPB
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Buddhabrot - Theoretische Frage

  Alt 12. Okt 2014, 14:00
Hallo HPB,

Kann ich machen aber der Code ist noch nicht fertig bzw. in einem Zustand der vorzeigbar ist
Wenn der Code soweit in Ordnung ist dann kann ich den auch gerne hier posten
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:11 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