Hallo,
ich bin grad ziemlich am verzweifeln... Ich weiß einfach nicht wo mein Fehler liegt
Mein Mandelbrot wird momentan so gezeichnet:
Das hier ist die Funktion mit der das Fraktal gezeichnet wird:
KomplexeZahl ist einfach eine Klasse die 2 Werte speichert -> var_x und var_y
Meine Funktion zur Rekursion:
Bitte weist mich auf den Fehler auf, wenn ihr ihn erkannt habt. Ich sitz hier schon stundenlang dran und kann mir den Fehler nicht erklären.
Ich vermute ich habe es mit der Rekursion vllt. nicht ganz verstanden
Ich hoffe mir kann da jmd. helfen
MfG St0on
ich bin grad ziemlich am verzweifeln... Ich weiß einfach nicht wo mein Fehler liegt
Mein Mandelbrot wird momentan so gezeichnet:
Das hier ist die Funktion mit der das Fraktal gezeichnet wird:
Visual Basic-Quellcode
- Public Function zeichnen(ByVal c As KomplexeZahl, ByVal iliteration As Integer) As Bitmap
- Dim urx As Double = c.var_x
- For y As Integer = 0 To bm.Height - 1 'Spalte
- For x As Integer = 0 To bm.Width - 1 'Zeile
- Dim reknum As Integer = Form.rekursion(c, iliteration)
- If reknum = iliteration Then
- drawPixel(Color.Black, x, y)
- ElseIf reknum < iliteration Then
- drawPixel(Color.MediumSeaGreen, x, y)
- End If
- c.var_x += deltax
- Next
- c.var_x = urx
- c.var_y += deltay
- Next
- Return bm
- End Function
KomplexeZahl ist einfach eine Klasse die 2 Werte speichert -> var_x und var_y
Meine Funktion zur Rekursion:
Visual Basic-Quellcode
- Public Function rekursion(ByVal c As KomplexeZahl, ByVal n_max As Integer) As Integer
- Dim n As Integer = 0 'n sind die Durchgänge
- Dim z As KomplexeZahl = New KomplexeZahl(0, 0) 'Der Startwert von z ist (0|0)
- While z.betrag < 2 And n < n_max 'Solange der Betrag von z nicht größer ist als 2 und die max. Druchgänge nicht überstiegt, soll er rechnen
- z.multipliziere(z) 'z hoch 2 wird ausgerechnet
- z.subtrahiere(c) 'Die Formel f(z) = z^2 - c wird berechnet
- n += 1 'Ein Durchgang wird dazu addiert
- End While
- Return n 'Falls der Betrag über 2 kommt oder die max. Durchgänge überstiegen wurden, wird hier zurückgegeben
Bitte weist mich auf den Fehler auf, wenn ihr ihn erkannt habt. Ich sitz hier schon stundenlang dran und kann mir den Fehler nicht erklären.
Ich vermute ich habe es mit der Rekursion vllt. nicht ganz verstanden
Ich hoffe mir kann da jmd. helfen
MfG St0on