Μια καμπύλη Γκόσπερ στο τέταρτο στάδιο
The line from the red to the green point shows a single step of the Gosper curve construction
Η **καμπύλη Γκόσπερ**, που πήρε το όνομά της από τον Μπιλ Γκόσπερ και είναι επίσης γνωστή ως καμπύλη Πέανο-Γκόσπερ, πρόκειται για μια καμπύλη που γεμίζει το χώρο και της οποίας το οριακό σύνολο είναι το rep-7. Είναι μια καμπύλη φράκταλ που μοιάζει στην κατασκευή με την καμπύλη δράκου και την καμπύλη Χίλμπερτ.

Η καμπύλη Γκόσπερ μπορεί επίσης να χρησιμοποιηθεί για ιεραρχική εξαγωνική ομαδοποίηση και ευρετηρίαση.

Αλγόριθμος
----------

### Σύστημα Λιντενμάγιερ

Η καμπύλη Γκόσπερ μπορεί να αναπαρασταθεί χρησιμοποιώντας ένα L-σύστημα με κανόνες ως εξής:

* Γωνία: 60°
* Αξίωμα: {\displaystyle A}
* Κανόνες αντικατάστασης:
	+ {\displaystyle A\mapsto A-B--B+A++AA+B-}
	+ {\displaystyle B\mapsto +A-BB--B-A++A+B}

Σε αυτή την περίπτωση τόσο το Α όσο και το Β σημαίνουν ότι κινούμαστε προς τα εμπρός, το + σημαίνει ότι στρίβουμε αριστερά 60 μοίρες και το - σημαίνει ότι στρίβουμε δεξιά 60 μοίρες - χρησιμοποιώντας ένα πρόγραμμα τύπου "χελώνας" όπως η Γλώσσα προγραμματισμού Logo.

### Logo

Ένα πρόγραμμα Logo για τη σχεδίαση της καμπύλης Γκόσπερ με τη χρήση turtle graphics:

```
to rg :st :ln
 make "st :st - 1
 make "ln :ln / sqrt 7
 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 / sqrt 7
 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

```

Το πρόγραμμα μπορεί να ενεργοποιηθεί, για παράδειγμα, με την εντολή `rg 4 300`, ή εναλλακτικά `gl 4 300`.

### Python

Ένα πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο χρησιμοποιεί τους προαναφερθέντες κανόνες του συστήματος L, για να σχεδιάσει την καμπύλη Γκόσπερ χρησιμοποιώντας γραφικά χελώνας (online έκδοση):

```
import turtle

def gosper\_curve(order: int, size: int, is\_A: bool = True) -> None:
 """Draw the Gosper curve."""
    if order == 0:
        turtle.forward(size)
        return
    for op in "A-B--B+A++AA+B-" if is\_A else "+A-BB--B-A++A+B":
        gosper\_op\_map[op](order - 1, size)

gosper\_op\_map = {
    "A": lambda o, size: gosper\_curve(o, size, True),
    "B": lambda o, size: gosper\_curve(o, size, False),
    "-": lambda o, size: turtle.right(60),
    "+": lambda o, size: turtle.left(60),
}
size = 10
order = 3
gosper\_curve(order, size)

```

Ιδιότητες
---------

Ο χώρος που γεμίζει η καμπύλη ονομάζεται **νησί Γκόσπερ**. Οι πρώτες επαναλήψεις του φαίνονται παρακάτω:

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
|  |  |  |  |  |

Το νησί Γκόσπερ μπορεί να επικαλύψει την επιφάνεια. Στην πραγματικότητα, επτά αντίγραφα του νησιού Γκόσπερ μπορούν να ενωθούν για να σχηματίσουν ένα σχήμα που είναι ομοειδές, αλλά αναβαθμισμένο κατά έναν παράγοντα √7 σε όλες τις διαστάσεις. Όπως φαίνεται από το παρακάτω διάγραμμα, η εκτέλεση αυτής της πράξης με μια ενδιάμεση επανάληψη του νησιού οδηγεί σε μια αναβαθμισμένη έκδοση της επόμενης επανάληψης. Η επ' αόριστον επανάληψη αυτής της διαδικασίας παράγει μια ψηφιδωτή απεικόνιση του επιπέδου. Η ίδια η καμπύλη μπορεί ομοίως να επεκταθεί σε μια άπειρη καμπύλη που γεμίζει ολόκληρο το επίπεδο.

|  |  |
| --- | --- |
|  |  |

Δείτε επίσης
------------

* Σύνολο Μάντελμπροτ
* Μαουρίτς Κορνέλις Έσερ
* Οικοδομήσιμο Σύμπαν

Παραπομπές
----------

1. ↑  Weisstein, Eric W. «Peano-Gosper Curve». MathWorld. Ανακτήθηκε στις 31 Οκτωβρίου 2013.
2. ↑  «rep-tile definition - Wolfram|Alpha». *www.wolframalpha.com* (στα Αγγλικά). Ανακτήθηκε στις 26 Αυγούστου 2023.
3. ↑  Uher, Vojtěch; Gajdoš, Petr; Snášel, Václav; Lai, Yu-Chi; Radecký, Michal (28 May 2019). «Hierarchical Hexagonal Clustering and Indexing». *Symmetry* **11** (6): 731. doi:10.3390/sym11060731.
4. ↑  «turtle — Turtle graphics». *Python documentation*. Ανακτήθηκε στις 25 Αυγούστου 2023.
5. 1 2  Weisstein, Eric W. «Gosper Island». *mathworld.wolfram.com* (στα Αγγλικά). Ανακτήθηκε στις 26 Αυγούστου 2023.
6. ↑  «Fractals de Gosper». *mathcurve.com*. Ανακτήθηκε στις 26 Αυγούστου 2023.

Εξωτερικοί σύνδεσμοι
--------------------

|  |  |
| --- | --- |
| Commons logoCommons logo | Τα Wikimedia Commons έχουν πολυμέσα σχετικά με το θέμα   **Καμπύλη Γκόσπερ** |

* NEW GOSPER SPACE FILLING CURVES
* FRACTAL DE GOSPER (Γαλλικά)
* Gosper Island at Wolfram MathWorld
* Flowsnake by R. William Gosper

  



|  |  |
| --- | --- |
| 

|  |
| --- |
| * Πύλη:Μαθηματικά
 |

 |