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 |