Nachdem ich Coding for Fun gelesen habe und nun Interesse an Fraktalen entwickelt habe, möchte ich den Code mit euch teilen.
Folgende Prozedur erstellt eine sogenannte "Drachenkurve".
Code: Alles auswählen
procedure TForm1.dragon(x0, y0, x1, y1, level: Integer);
var
x2, y2 : Integer;
begin
x2 := (x0 + x1 + y0 - y1) div 2;
y2 := (-x0 + x1 + y0 + y1) div 2;
if (level <= 0) then
begin
self.Canvas.Pen.Color := clRed;
self.Canvas.Line(x0, y0, x2, y2);
self.Canvas.Line(x2, y2, x1, y1);
end else
begin
dragon(x0, y0, x2, y2, level-1);
dragon(x1, y1, x2, y2, level-1);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
dragon(50, 200, 700, 500, 12);
end;