Fraktale (Bsp. Mandelbrot)
-
Hallo,
Ich verbringe gerade den größten Teil meiner Freizeit damit, ein Mandelbrot-Fraktal zu programmieren. Leider bin ich bisher nicht sehr erfolgreich....
Das Problem ist, dass er mir das Fraktal nicht mal annähernd anzeigt. Nun weiß ich leider nicht mehr weiter und hoffe, jemand kann mir einen hilfreichen Tip geben..... Daher anbei mal den Code der Berechnung:
int z = 0; double x = -2.0; double y = -1.25; double x_temp, y_temp; for (int px=0; px<=Image->Width; px++) { for (int py=0; py<=Image->Height; py++) { do { x_temp = x² - y² + x; y_temp = 2xy + y; x = x_temp; y = y_temp; z+=1; } while (x² + y² < 4 || z<75) if (z<50) Image->Pixels[px][py] = clRed; else Image->Pixels[px][py] = clBlue; } }
sunhine
P.S.: Muss ich vielleicht mein Image erst in ein Koordinatensystem umwandeln?
-
Aber daran liegts nicht.
Die Formel für das Mandelbrotfraktal ist ja f(z)->z2+c. Das wird dann nach z iteriert, für c musst du die Punkte der komplexen Ebene einsetzten. Bei dir wäre c=px+py*i. z ist im ersten Durchlauf Null. Vielleicht wäre es sinnvoll, eine Funktion zu schreiben, welcher du als Parameter die z und c Werte übergibst und die sich rekursiv selbst aufruft.
-
Hey, hab's nun doch endlich hinbekommen und mein kleines Programm zeichnet mir ein schönes Mandelbrot-Bildchen. Ich habe sowohl einige Änderungen bzgl. der Farben durchgeführt als auch ein Koordinatensystem gebastelt. Aber die Formel funktioniert einwandfrei. Trotzdem danke für den Tip mit der anderen Formel; werd es auf jeden Fall ausprobieren.
sunshine
-
Jetzt kannst du im Programm noch ein Kästchen mit variabler Größe einbauen, mit dem du Zoomen kannst. Das ist geil!