Español   Ejemplos: Cuadrículas

Dibujos con cuadrícula

Las cuadrículas son un buen punto de partida a la hora de programar con LOGO. Además, también se pueden conseguir dibujos artísticos con ellas.

Cuadrícula simple

# Comando de Inicio: empezar 15
para empezar :orden
  nuevo incicializa :orden
  repite :total [
    ponposicion cuad.pos :orden contador-1
    cuadrado espera 20]
fin

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

para inicializar :orden
  haz "total potencia :orden 2
  haz "celd.tam 360/:orden
  haz "offset (0.5*:orden)-0.5
  haz "lado 250/:orden
fin

para cuad.pos :orden :celdnum
  haz "x :celd.tam*((resto :celdnum :orden)-:offset)
  haz "y :celd.tam*((cociente :celdnum :orden)-:offset)
  devuelve lista :x :y
fin

para cuadrado
# Dibujamos cuadrado desde el centro
  retrocede :lado/2 giraderecha 90 retrocede :lado/2 bajalapiz
  repite 4 [avanza :lado giraizquierda 90] subelapiz
fin

Cuadrícula artística - I

Añade este procedimiento a los anteriores y prueba, por ejemplo, artistica1 15
para artistica1 :Orden
  nuevo inicializar :Orden
  repite :total
    [ ponposicion cuad.pos :orden azar :total cuadrado]
fin

Cuadrícula artística - II

Ahora, añade este procedimiento y ejecuta, por ejemplo, artistica2 25
para artistica2 :Orden
  nuevo inicializar :Orden
  repite :total
   [ ponposicion cuad.pos :orden azar contador-1
     cuadrado giraderecha 90/(:total-1)]
fin

Cuadrícula artística - III

Finalmente, algo de color. Prueba artistica3 25
para artistica3 :orden
  nuevo inicializar :Orden
  haz "lista.celd []
  repite :total
    [ haz "cuad.aleat azar :total
      si no miembro? :cuad.aleat :lista.celd
       [ ponposicion cuad.pos :orden :cuad.aleat cuadrado
        haz "lista.celd ponprimero :cuad.aleat :lista.celd ] ]
  poncolorlapiz rojooscuro haz "contador :orden+1
  repite :orden-2
    [ repite :orden-2
      [ si (y (miembro? :contador :lista.celd)
        (miembro? :contador+1 :lista.celd)
        (miembro? :contador-1 :lista.celd)
        (miembro? :contador+:orden :lista.celd)
        (miembro? :contador-:orden :lista.celd) )
      [ ponposicion cuad.pos :orden :contador
       bajalapiz rellena subelapiz ]
      haz "contador :contador+1 ]
     haz "contador :contador+2 ]
fin


Para ver la lista de celdas:
escribe :lista.celd
Probar estos programas:

Procedimientos a ejecutar:

Simple: empezar
artistica1 12
artistica2 15
artistica3 25