La curva de Gosper , también conocida como Curva de Peano-Gosper , [1] nombrada en honor a Bill Gosper , también conocida como la serpiente de flujo (una especie de copo de nieve ), es una curva de relleno de espacio cuyo límite establecido es rep -7. Es una curva fractal similar en su construcción a la curva del dragón y la curva de Hilbert .
La curva de Gosper también se puede utilizar para una agrupación e indexación hexagonal jerárquica eficiente. [2]
Una curva de Gosper de cuarta etapa
La línea del punto rojo al verde muestra un solo paso de la construcción de la curva de Gosper.
Algoritmo
Sistema Lindenmayer
La curva de Gosper se puede representar usando un sistema L con reglas como sigue:
- Ángulo: 60 °
- Axioma:
- Reglas de reemplazo:
En este caso, tanto A como B significan avanzar, + significa girar a la izquierda 60 grados y - significa girar a la derecha 60 grados - usando un programa estilo "tortuga" como Logo .
Logo
Un programa de Logo para dibujar la curva de Gosper usando gráficos de tortugas ( versión en línea ):
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 ] final a 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 ] final
El programa puede invocarse, por ejemplo, con rg 4 300
o alternativamente gl 4 300
.
Pitón
Un programa de Python , que usa las reglas del Sistema L antes mencionadas, para dibujar la curva de Gosper usando gráficos de tortuga ( versión en línea ):
tortuga de importacióndef gosper_curve ( order : int , size : int , is_A : bool = True ) -> None : "" "Dibuja la curva de Gosper." "" if order == 0 : turtle . forward ( size ) return for op in "AB - B + A ++ AA + B-" if is_A else "+ A-BB - B-A ++ A + B" : gosper_op_map [ op ] ( orden - 1 , tamaño )gosper_op_map = { "A" : lambda o , tamaño : gosper_curve ( o , tamaño , Verdadero ), "B" : lambda o , tamaño : gosper_curve ( o , tamaño , Falso ), "-" : lambda o , tamaño : tortuga . derecha ( 60 ), "+" : lambda o , tamaño : tortuga . izquierda ( 60 ), } tamaño = 10 pedido = 3 gosper_curve ( pedido , tamaño )
Propiedades
El espacio ocupado por la curva se llama isla Gosper . Las primeras iteraciones se muestran a continuación:
La isla Gosper puede enlosar el avión . De hecho, se pueden unir siete copias de la isla Gosper para formar una forma similar , pero ampliada por un factor de √ 7 en todas las dimensiones. Como se puede ver en el diagrama a continuación, realizar esta operación con una iteración intermedia de la isla conduce a una versión ampliada de la siguiente iteración. Repetir este proceso indefinidamente produce una teselación del plano. Asimismo, la curva en sí puede extenderse a una curva infinita que llene todo el plano.
Ver también
Referencias
- ^ Weisstein, Eric W. "Curva de Peano-Gosper" . MathWorld . Consultado el 31 de octubre de 2013 .
- ^ "Agrupación e indexación hexagonal jerárquica", 2019, https://doi.org/10.3390/sym11060731
enlaces externos
- https://web.archive.org/web/20060112165112/http://kilin.u-shizuoka-ken.ac.jp/museum/gosperex/343-024.pdf
- http://kilin.clas.kitasato-u.ac.jp/museum/gosperex/343-024.pdf
- http://www.mathcurve.com/fractals/gosper/gosper.shtml (en francés)
- http://mathworld.wolfram.com/GosperIsland.html
- http://logo.twentygototen.org/mJjiNzK0
- https://larryriddle.agnesscott.org/ifs/ksnow/flowsnake.htm