Anhang: datei1.jpg (117, KB)Das hier ist das Herzstück eines von mir (recht stümperhaft) programmierten
Apfelmännchen-Generators
:DMittlerweile ist es auch kein Apfelmännchen mehr, da die Formel leicht verändert wurde. Ich wollte einfach nur schöne Bilder erzeugen.
kurz zum Prinzip:
Das Programm rechnet für jeden Punkt einer Matrix (begrenzt durch die Konstanten a1,a2,b1,b2) die Anzahl der Durchläufe einer For to next Schleife bis zum Erreichen eines vorgegebenen Abbruchkriteriums.
Diese Anzahl lässt sich dann wunderschön als Farbcode nutzen
;)
Private Sub Command1_Click()
Const Feld = 2000 'Kantenlänge der Matrix
Dim aFaktor, bFaktor, a, b, aR, bR, I, X, Y, X1, Y1, Matrix(Feld, Feld), FIndex
Const a1 = -0.35
Const a2 = -0.31
Const b1 = 0.63
Const b2 = 0.73
'Nullsetzten
For a = 0 To Feld
For b = 0 To Feld
Matrix(a, b) = 0
Next b
Next a
aFaktor = Abs(a1 - a2) / Feld
bFaktor = Abs(b1 - b2) / Feld
For a = 1 To Feld
aR = a * aFaktor + a1
For b = 1 To Feld
bR = b * bFaktor + b1
X = 0
Y = 0
For I = 1 To 100
X1 = X ^ 2 - Y ^ 2 + aR
Y1 = 2 * X * Y + bR - Sin(0.5 * Y)
X = X1
Y = Y1
If X ^ 2 + Y ^ 2 > 2 Then 'Abbruchbedingung erfüllt "2"
Matrix(a, b) = I
I = 101
End If
Next I
Next b
Next a
'Ausgabe
Open ".......\DATEI1.txt" For Append As #1
' Datei schließen, bevor sie in einem anderen Modus erneut
Write #1, Feld 'Zeilenzahl
Write #1, Feld 'Spaltenzahl
DrawWidth = 2
For a = 1 To Feld
For b = 1 To Feld
If Not Matrix(a, b) = 0 Then
Circle (b * 25 * 200 / Feld, a * 25 * 200 / Feld), 5 * 200 / Feld, RGB(255 * a / Feld, 255 - Matrix(a, b) * 1.5, 255 * b / Feld)
Else
Circle (b * 25 * 200 / Feld, a * 25 * 200 / Feld), 5 * 200 / Feld, RGB(0, 0, 0)
End If
Write #1, Matrix(a, b)
Next b
Next a
' geöffnet wird.
Close #1
End Sub
Und im Anhang findet Ihr mein Lieblingsbild - dummerweise hab ich die Parameter dafür vergessen
:(Liebe Esoteriker, seid gewarnt, meine kabbalistische Quersumme ist die E I N S
-----------------------------
Nur Atheisten kommen in den Himmel! Ihre Nächstenliebe ist nicht gottgeschuldet, sondern ehrlich.