[procedure] Drachenkurve

Zur Vorstellung von Komponenten und Units für Lazarus

[procedure] Drachenkurve

Beitragvon bembulak » 19. Aug 2008, 08:47 [procedure] Drachenkurve

Hi!

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;
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
bembulak
 
Beiträge: 371
Registriert: 6. Feb 2007, 10:29
Wohnort: Oberösterreich
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3 | 
CPU-Target: 32bit i386, ARM
Nach oben

• Themenende •

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried