Español   Ejemplos: Fractales.

Curva de Wirth

La curva de Wirth rellena un triángulo. Como antes hicimos con Sierpinski, la hemos aplicado al relleno de un cuadrado.

para empezar :orden
  nuevo inicializar :orden
  ponposicion lista cambiasigno 190 (cambiasigno 190)+:lado/2
  poncolorlapiz amarillo bajalapiz
  repite 4
   [ wi :orden 45 avanza :lado/2
    giraderecha 90 avanza :lado/2]
  subelapiz centro poncolorlapiz azuloscuro bajalapiz rellena
fin

para nuevo
# Inicializamos papel, lapiz y tortuga
  reponetodo pontamañopantalla [400 400]
  poncolorpapel negro poncolorlapiz verde subelapiz ocultatortuga
fin

para inicializar :orden
  haz "side (3*potencia 2 :orden) - 1 # centramos curva
  haz "lado 380/:side # variable global
fin

para wi :orden :angulo
  si :orden < 1 [avanza :lado alto] # o sea, si = 0
  giraderecha :angulo
  iw :orden cambiasigno :angulo
  giraizquierda :angulo avanza :lado giraizquierda :angulo
  iw :orden cambiasigno :angulo
  giraderecha :angulo
fin

para iw :orden :angulo
  giraderecha :angulo
  wi :orden-1 cambiasigno :angulo
  avanza :lado/2 giraizquierda 2*:angulo avanza :lado/2
  wi :orden-1 cambiasigno :angulo
  giraderecha :angulo
fin


Una animación para crear las curvas de Wirth de orden 0 a 10:

para empieza
  nuevo animacion
  repitepara [orden 0 5]
   [ limpia inicializar :orden
    ponxy -190 (-190)+:lado/2
    poncolorlapiz amarillo bajalapiz
    repite 4
     [ wi :orden 45
      avanza :lado/2 giraderecha 90 avanza :lado/2]
    subelapiz centro poncolorlapiz azuloscuro bajalapiz rellena
    refrescar espera 80 subelapiz centro]
  detieneanimacion
fin
Probar este programa ahora

Procedimiento a ejecutar:
empezar 4