Pass auf, du hast 800 Pixel in der Breite und, 600 Pixel in der Höhe.
Und du hast Für die X-Achse also die Realwerte Von ReMin (-2,25) bis ReMax (0,75), sprich entsprechen 800Pixel in der Breite 3 Einheiten in der Gauschenzahlenebene.
Sprich um ein Pixel in die Gauschezahlenebene umzurechnen rechnest du Pixel/3
Auf der Y-Achse werden die Imaginärenzahlen aufgetragen.
Von ImMin=-1,5 bis ImMax=1,5 sprich wieder 3.
Also auch Pixel/3.
nun lässt du ein Programm laufen:
Delphi-Quellcode:
//Wahrscheinlich muss die unit math eingebunden werden: uses ..., math;
procedure PaintMandelOnCanvas(ReMin, ReMax, ImMin, ImMax: Real; MaxIt: integer; Canv: TCanvas);
var
xalt, x, xc, yalt, y, yc, RePlane, ImPlane: real;
n, i, j: integer;
begin
RePlane := abs(ReMin) + abs(ReMax);
ImPlane := abs(ImMin) + abs(ImMax);
for i := 0
to 800
do
for j := 0
to 600
do
begin
xalt := 0;
yalt := 0;
n := 0;
xc := (i / RePlane) + ReMin;
//Umrechnen in die Gauschezahlenebene
yc := (j / ImPlane) - ImMin;
while (xalt*xalt + yalt*yalt < 4)
and (n < MaxIt)
do
begin
inc(n);
x := xalt*xalt - yalt*yalt + xc;
y := 2 * xalt * yalt + yc;
xalt := x;
yalt := y;
end;
if n = MaxIt
then
Canv.Pixel[i, j] := clblack
else
//Färb je nach erreichter Iteration, veränderbar
Canv.Pixel[i, j] :=
RGB(n, n
div 2, (n+100)/3);
end;
end;
So, ich hab das jetzt nicht getestet aber das sollte eine Schwarze Mandelbrotmenge geben mit gefärbtem Randbereich.