Hessischer Bildungsserver / Arbeitsplattformen

Orientierungswechsel

Drachenkurve

Bekannte attraktive rekursive Grafiken basieren auf dem Orientierungswechsel. Die Drachenkurve entsteht, wenn bei der Streckenersetzung abwechselnd der Haken nach links bzw. nach rechts ausgeführt wird.

procedure TFRekGraf.ZeichneDrachen(Stufe,Orientierung:Integer;Laenge:Real);
begin
if (Stufe > -1) and (Laenge > 1) then begin
Laenge:= Laenge/sqrt(2);
with Turtle do begin
Turn(45*Orientierung);
ZeichneDrachen(Stufe-1, +1, Laenge);
Turn(-90*Orientierung);
ZeichneDrachen(Stufe-1, -1, Laenge);
Turn(45*Orientierung);
end
end
else
Turtle.Draw(Laenge);
end;
Pfeilspitzenkurve

Die Pfeilspitzenkurve hat als Initiator eine Strecke und als Generator die linke Figur. Zusätzlich wird bei jeder Streckenersetzung die Orientierung geändert.

procedure TFRekGraf.ZeichnePfeilspitzenkurve(Stufe, Orientierung: Integer; Laenge: Real);
begin
if (Stufe > 0) and (Laenge > 1) then begin
Turtle.Turn(+60*Orientierung);
ZeichnePfeilspitzenkurve(Stufe-1, -Orientierung, Laenge/2);
Turtle.Turn(-60*Orientierung);
ZeichnePfeilspitzenkurve(Stufe-1, +Orientierung, Laenge/2);
Turtle.Turn(-60*Orientierung);
ZeichnePfeilspitzenkurve(Stufe-1, -Orientierung, Laenge/2);
Turtle.Turn(+60*Orientierung);
end
else
Turtle.Draw(Laenge);
end;

Bei der Drachenkurve ist die Reihenfolge der Orientierungen stets zuerst +1, dann -1. Bei der Pfeilspitzenkurve hingegen wechselt die Orientierungsreihenfolge von -1, +1, -1 nach +1, -1, +1 und zurück. Wählt man die feste Orientierungsreihenfolge -1, +1 und -1, so entsteht eine andere Kurve.