Español   Ejemplos: Fractales.

Otra curva de Hilbert

Una pequeña variación sobre la curva de Hilbert, que genera una curva cerrada para la que puede distinguirse un "dentro" y un "fuera".
Podemos comprobar que hay "dentro" y "fuera" tecleando:
subelapiz centro bajalapiz poncolorlapiz azul rellena

Empieza con un bucle, y tiene seis reglas de reemplazamiento, aunque el uso de una variable paridad reduce a tres el número de procedimientos.

para empezar :nivel
# Inicializamos papel, lapiz y tortuga
  reponetodo pontamañopantalla [400 400]
  poncolorpapel negro poncolorlapiz 2
  subelapiz ocultatortuga
#
  haz "lado 96/(potencia 2 :nivel) # variable global
  haz "paso pi * :lado / 10 # variable global para girar en los vertices
  subelapiz ponxy cambiasigno :lado 0 bajalapiz
#
  repite 2 [c1 :nivel 1 c2 :nivel 1]
fin

para c1 :nivel :paridad
  si :nivel < 1 [giro :paridad alto]
  c2 :nivel-1 cambiasigno :paridad
  c2 :nivel-1 :paridad
  c1 :nivel-1 :paridad
  recto :nivel-1 cambiasigno :paridad
fin

para c2 :nivel :paridad
  si :nivel < 1 [giro :paridad alto]
  recto :nivel-1 cambiasigno :paridad
  c2 :nivel-1 :paridad
  c1 :nivel-1 :paridad
  c1 :nivel-1 cambiasigno :paridad
fin

para recto :nivel :paridad
  si :nivel < 1 [avanza 2*:lado alto]
  c2 :nivel-1 cambiasigno :paridad
  c2 :nivel-1 :paridad
  c1 :nivel-1 :paridad
  c1 :nivel-1 cambiasigno :paridad
fin

para giro :paridad
  avanza :lado giraderecha :paridad*90 avanza :lado
fin


Probar este programa ahora

Procedimiento a ejecutar:
empezar 5