In Delphi :
procedure TForm1.ButtonFarnClick(Sender: TObject);
procedure farn(len: Double);
begin
with Turtle1 do
If len > 2 then begin
FD(len);
LT(25); farn(len*0.5);
RT(35); farn(len*0.7);
RT(25); farn(len*0.4);
LT(35);
BK(len);
end
else begin
FD(len);
BK(len);
end;
end;
begin
With Turtle1 do begin
CS;
PU;
BK(120);
PD;
end;
farn(80);
end;
Die Click-Prozedur enthält eine lokale, rekursive Prozedur "farn(len: Double)", die die eigentliche Grafik zeichnet. Vor dem Aufruf von "farn(80)" im "Hauptprogramm" der Click-Prozedur wird lediglich der Bildschirm gelöscht und die Startposition sinnvoll gewählt. |
In Java :
private void farn(double len) {
if (len > 2) {
t.draw(len);
t.turn( 25);
farn(len * 0.5);
t.turn(-35);
farn(len * 0.7);
t.turn(-25);
farn(len * 0.4);
t.turn( 35);
t.draw(-len);
} else {
t.draw( len);
t.draw(-len);
}
}
public void jButton1_ActionPerformed(ActionEvent evt) {
t.clear();
t.turn(90);
t.move(-120);
farn(80);
}
Die Click-Prozedur ruft die private rekursive Prozedur "farn(double len)" auf, die die eigentliche Grafik zeichnet. Vor dem Aufruf von "farn(80)" in der Click-Prozedur wird lediglich der Bildschirm gelöscht und die Startposition sinnvoll gewählt. |