Eine Gosper-Kurve der Stufe 4.
Die Strecke zwischen dem roten und grünen Punkt wurde durch die Kurve der Stufe 1 ersetzt.
Die Gosper-Kurve ist eine fraktale und raumfüllende Kurve . Sie ist benannt nach Bill Gosper . Ähnlich wie die Drachenkurve und die Hilbert-Kurve wird sie durch Ersetzung erzeugt.
Algorithmen
Lindenmayer-System
Die Gosper-Kurve lässt sich durch ein Lindenmayer-System mit folgenden Eigenschaften beschreiben:
Winkel: 60°
Startstring:
A
{\displaystyle A}
Ableitungsregeln:
A
↦ ↦ -->
A
− − -->
B
− − -->
− − -->
B
+
A
+
+
A
A
+
B
− − -->
{\displaystyle A\mapsto A-B--B+A++AA+B-}
B
↦ ↦ -->
+
A
− − -->
B
B
− − -->
− − -->
B
− − -->
A
+
+
A
+
B
{\displaystyle B\mapsto +A-BB--B-A++A+B}
Logo
Ein Programm zur Erzeugung der Gosper-Kurve in Logo :
to rg :st :ln
make "st :st - 1
make "ln :ln / 2.6457
if :st > 0 [rg :st :ln rt 60 gl :st :ln rt 120 gl :st :ln lt 60 rg :st :ln lt 120 rg :st :ln rg :st :ln lt 60 gl :st :ln rt 60]
if :st = 0 [fd :ln rt 60 fd :ln rt 120 fd :ln lt 60 fd :ln lt 120 fd :ln fd :ln lt 60 fd :ln rt 60]
end
to gl :st :ln
make "st :st - 1
make "ln :ln / 2.6457
if :st > 0 [lt 60 rg :st :ln rt 60 gl :st :ln gl :st :ln rt 120 gl :st :ln rt 60 rg :st :ln lt 120 rg :st :ln lt 60 gl :st :ln]
if :st = 0 [lt 60 fd :ln rt 60 fd :ln fd :ln rt 120 fd :ln rt 60 fd :ln lt 120 fd :ln lt 60 fd :ln]
end
Das Programm kann beispielsweise mit rg 4 300
aufgerufen werden. Alternativ auch mit gl 4 300
.
Gosper-Insel
Selbstähnlichkeit: Sieben kleine Gosper-Inseln fügen sich wieder zu einer großen Gosper-Insel zusammen.
Die von der Gosper-Kurve umschlossene Fläche heißt Gosper-Insel und ist eine Variante der Kochschen Schneeflocke . Die Fläche eignet sich zur Parkettierung der Ebene.
Weblinks