Gosperova křivka

Gosperova křivka neboli Peano-Gosperova křivka [1] , pojmenovaná po objeviteli Billu Gosperovi , je křivka vyplňující prostor . Je fraktální křivka podobná dračí a Hilbertově křivce .

Čtvrtá fáze Gosperovy křivky Přerušovaná čára od červené tečky k zelené ukazuje jeden krok konstrukce Gosperovy křivky.

Algoritmus

Lindenmayerův systém

Gosperova křivka může být reprezentována pomocí Lindenmeierova systému s následujícími pravidly:

V tomto případě A a B znamenají pohyb vpřed, + znamená otočení doleva o 60º a - znamená otočení o 60º doprava pomocí stylu programování "želva" jako v Logo nebo Python3 .

Logo

Logo program pro kreslení gosper křivky pomocí želví grafiky ( online verze ):

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

Program lze spustit např. příkazem rg 4 300nebo gl 4 300.

Python3

importovat želvu želva . hideturtle () želva . tracer ( 0 ) želva . penup () želva . setposition ( 180 , 240 ) želva . čekání () axiom , tempAx , logika , iterace = 'A' , '' , { 'A' : 'AB--B+A++AA+B-' , 'B' : '+A-BB--B-A+ + A+B' }, 5 pro i v rozsahu ( iterace ): pro j v axiomu : tempAx += logika [ j ] if j v logice else j axiom , tempAx = tempAx , '' pro k v axiomu : if k == '+' : želva . vlevo ( 60 ) elif k == '-' : želva . vpravo ( 60 ) jinak : želva . vpřed ( 4 ) želva . aktualizovat () želva . hlavní smyčka ()

Vlastnosti

Fragmenty letadla plné křivek se nazývají Gosperovy ostrovy . Prvních několik iterací je uvedeno níže:

Gosperův ostrov dokáže vydláždit letadlo . Ve skutečnosti lze sedm kopií Gosperova ostrova spojit dohromady a vytvořit podobnou postavu, ale zvětšenou o faktor √7 ve všech směrech. Jak můžete vidět na obrázku níže, výsledkem této operace je menší verze další iterace křivky. Pokračování v procesu donekonečna dává dlaždici roviny. Křivka samotná může být rovněž prodloužena do nekonečna, aby vyplnila celou rovinu.

Viz také

  • Seznam fraktálů podle Hausdorffovy dimenze

Poznámky

  1. Weisstein, Eric W. Peano-Gosperova křivka . Mathworld . Získáno 31. října 2013. Archivováno z originálu dne 20. dubna 2019.

Odkazy