Español   Ejemplos: Fractales.

La curva de Hilbert

Esta curva también rellena el plano, y fue inventada por David Hilbert, matemático alemán de principios del siglo XX.

El procedimiento utiliza un sistema de paridad +1 o -1 para determinar si se debe girar a derecha o izquierda para que las uniones sean correctas. Cada curva es un camino continuo que va desde el vértice inferior izquierdo al superior derecho.

para empezar :nivel
# Inicializamos papel, lapiz y tortuga
  reponetodo pontamañopantalla [400 400]
  poncolorpapel negro poncolorlapiz 2
  subelapiz ocultatortuga
#
  haz "tam 180/(potencia 2 :nivel) # variable global
  subelapiz ponxy (:tam/2)-180 (:tam/2)-180
  ponrumbo 90 bajalapiz
#
  hilbert :nivel 1
fin

para hilbert :nivel :paridad
  si :nivel < 0 [alto]
  giraizquierda :paridad*90
  hilbert :nivel-1 0-:paridad
  avanza :tam
  giraderecha :paridad*90
  hilbert :nivel-1 :paridad
  avanza :tam
  hilbert :nivel-1 :paridad
  giraderecha :paridad*90
  avanza :tam
  hilbert :nivel-1 0-:paridad
  giraizquierda :paridad*90
fin


Para mostrar sucesivamente las curvas de Hilbert de orden 0 a n:

para hilberts :max
  repitepara (frase "nivel 1 :max)
   [ empezar :nivel espera 60]
fin


Ejecutando hilberts 9, se mostrarán consecutivamente las curvas de Hilbert de nieles 1 a 9.
Probar este programa ahora

Procedimiento a ejecutar:
empezar 5