Schneemann
Grünschnabel
hallo erstmal zusammen
also ich habe folgendes problem: ich möchte das sierpinski dreieck mit hilfe der rekursion programmieren.S wie ich es versucht habe funktioniert es aber nicht (kompletter rechner schmiert ab), ich weiß aber nicht wo das problem liegt. Wäre nett wenn ihr mir weiterhelfen könntet.
ich werde am besten meinen Quelltext angeben:
Button1 ist der Button auf dessen Befehl hin das dreieck gezeichnet wird
Die Combobox gibt an wieviele Stufen das Dreieck haben soll, bzw. wieoft die Rekursionschleife durchlaufen weden soll.
ich hoffe ihr könnt nir aufgrund meiner Angaben helfen
vielen Dank schonmal
Schneemann
also ich habe folgendes problem: ich möchte das sierpinski dreieck mit hilfe der rekursion programmieren.S wie ich es versucht habe funktioniert es aber nicht (kompletter rechner schmiert ab), ich weiß aber nicht wo das problem liegt. Wäre nett wenn ihr mir weiterhelfen könntet.
ich werde am besten meinen Quelltext angeben:
Code:
procedure sierpinski (ordnung : Integer; laenge, winkel:Real; a: Integer);
var x,y: real;
begin
x := x+laenge*cos(winkel);
y := y-laenge*sin(winkel);
//Form1.PaintBox1.Canvas.LineTo (Round(x),Round(y));
sierpinski (ordnung-1, laenge / 2, winkel,a);
winkel := winkel + 2 * pi / 3;
sierpinski (ordnung-1, laenge / 2, winkel,a);
winkel := winkel - 2 * pi / 3;
sierpinski (ordnung-1, laenge / 2, winkel,a);
winkel := winkel - 2 * pi / 3;
sierpinski (ordnung-1, laenge / 2, winkel,a);
winkel := winkel + 2 * pi / 3;
sierpinski (ordnung-1, laenge / 2, winkel,a);
Inc(a);
Form1.paintbox1.Canvas.LineTo(Round(x),Round(y));
If a < (StrToInt(Form1.Combobox1.Text)) then
sierpinski (ordnung, laenge, winkel,a)
else
exit;
end;
//end;
procedure TForm1.Button1Click(Sender: TObject);
var ordnung : Integer;
x, y, laenge, winkel : Real;
a: Integer;
begin
x := 100;
y := 380;
a:= 0;
refresh;
laenge :=400;
winkel :=0;
ordnung := (StrToInt(ComboBox1.Text));
PaintBox1.Canvas.MoveTo (Round(x), Round(y));
sierpinski (ordnung, laenge, winkel,a);
end;
Button1 ist der Button auf dessen Befehl hin das dreieck gezeichnet wird
Die Combobox gibt an wieviele Stufen das Dreieck haben soll, bzw. wieoft die Rekursionschleife durchlaufen weden soll.
ich hoffe ihr könnt nir aufgrund meiner Angaben helfen
vielen Dank schonmal
Schneemann