Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.617 Beiträge
 
#6

Re: problem mit sierpinski- Dreieck

  Alt 22. Jan 2004, 14:18
Hier trotzdem kurz eine inline - Lösung für das Dreieck...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   ordnung: integer;
   x, y, laenge, winkel : Real;

   procedure sierpinsky(ordnung: integer; laenge: real; winkel: real);
   begin
      if ordnung = 0 then
      begin
         x := x + laenge * cos(winkel);
         y := y - laenge * sin(winkel);
         PaintBox1.Canvas.LineTo(Round(x), Round(y));
      end   else
      begin
         sierpinsky(ordnung-1, laenge / 2, winkel);
         winkel := winkel + 2 * pi / 3;
         sierpinsky(ordnung-1, laenge / 2, winkel);
         winkel := winkel - 2 * pi / 3;
         sierpinsky(ordnung-1, laenge / 2, winkel);
         winkel := winkel - 2 * pi / 3;
         sierpinsky(ordnung-1, laenge / 2, winkel);
         winkel := winkel + 2 * pi / 3;
         sierpinsky(ordnung-1, laenge / 2, winkel);
      end;
   end;

begin
   refresh;
   laenge := 400;
   winkel := 0;
   ordnung := StrToInt(Combobox1.Text);
   x := 100;
   y := 380;
   PaintBox1.Canvas.MoveTo (Round(x), Round(y));
   sierpinsky(ordnung, laenge, winkel);
end;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat