dumme Frage, aber können die Threads gleichzeitig auf die TBitMap zeichnen ? Denn sie
sollten dank ScanLine ja niemals in der selben Zeile sein
Ansonsten habe ich nachgedacht die Zeilen in Abhängigkeit von den Kernen zu erstellen, da es evtl. zu viel Aufwand ist X-kleine Threads zu erstellen als z.B. 8 die etwas mehr zu rechnen haben. Diese 8 Streifen könnten jeweils eine eigene BitMap haben, die dann im MainThread zusammengeklebt werden
Das Wurzelziehen mit SQRT() sollte man bei der Mandelbrotmenge unbedingt vermeiden, denn es kostet viel Zeit.
In der rekursiven Variante wird ja auf (A < 2) abgefragt.
Lässt man das Wurzelziehen weg, dann muss auch die Konstante quadriert werden (2*2=4):
Also ich habe gerade mal die Abbruchbedingung durch 4 ersetzt und die Wurzel entfernt - nun habe ich hübsche bunte Balken aber kein Apfelmänchen
Delphi-Quellcode:
if (i < 100) and (A < 4)
then begin
nX := (X*X) - (Y*Y) + X_Ko;
nY := 2*X*Y + Y_Ko;
nA := nX*nX + nY*nY;
result := rechne(X_Ko, Y_Ko, nX, nY, nA, i+1);
end;
//Edit:
Kann die .Execute nicht auf andere Methoden zugreifen ? Schutzklassen sollten da ja keine Probleme bereiten .. aber wenn ich meine 'rechne' function in der .Execute aufrufe passiert nichts - kopiere ich die function hinein läuft es ?!