Informe Tutorial: Diseño de Aplicación Animada en LOGO -Rebote Cíclico de la Tortuga en Arcos Horizontales"
https://turtleacademy.com/programs/459225
🐢 Código en LOGO (Sintaxis en Español) con Encabezado Institucional:
; =========================================================
; REBOTE EN ARCOS (VELOCIDAD LENTA Y TORTUGA SIEMPRE VISIBLE)
; Autor: Prof. Alexander Arias Londoño
; Semillero de Investigación: Semillero MMCC
; Asignatura: Lógica de Programación y Laboratorio
; ---------------------------------------------------------
; - Ida (Izquierda -> Derecha): Color ROJO (ponercolor 1)
; - Regreso (Derecha -> Izquierda): Color AZUL (ponercolor 4)
; =========================================================
bp ; Limpiar la pantalla (borrarpantalla)
mt ; Mostrar la tortuga (mostrartortuga)
ponergrosorlapiz 3 ; Grosor del trazo
; BUCLE INFINITO DE REBOTE
while [ 1 = 1 ] [
; --------------------------------------------------------
; FASE 1: IDA (IZQUIERDA A DERECHA) - COLOR ROJO
; --------------------------------------------------------
ponercolor 1 ; Color ROJO
hacer "x -250
repetir 5 [
sl ; Subir lápiz
ponerxy :x -250 ; Posicionar en el punto base
ponerd 0 ; Apuntar hacia ARRIBA (Norte)
mt ; Asegurar visibilidad de la tortuga
bl ; Bajar lápiz para trazar
; Arco horizontal hacia la derecha (recorrido más lento)
repetir 18 [
ad 8.72 ; Avanzar paso del arco
de 10 ; Girar a la DERECHA
mt ; Mantener visible el ícono de la tortuga
espera 3 ; Pausa de 3 milisegundos por paso (más lento)
]
hacer "x :x + 100 ; Avanzar 100px al siguiente punto
]
; --------------------------------------------------------
; FASE 2: REGRESO (DERECHA A IZQUIERDA) - COLOR AZUL
; --------------------------------------------------------
ponercolor 4 ; Color AZUL
hacer "x 250
repetir 5 [
sl ; Subir lápiz
ponerxy :x -250 ; Posicionar en el punto base
ponerd 0 ; Apuntar hacia ARRIBA (Norte)
mt ; Asegurar visibilidad de la tortuga
bl ; Bajar lápiz para trazar
; Arco horizontal hacia la izquierda (recorrido más lento)
repetir 18 [
ad 8.72 ; Avanzar paso del arco
iz 10 ; Girar a la IZQUIERDA
mt ; Mantener visible el ícono de la tortuga
espera 3 ; Pausa de 3 milisegundos por paso (más lento)
]
hacer "x :x - 100 ; Retroceder 100px al siguiente punto
]
]
Informe Tutorial: Diseño de Aplicación Animada en LOGO
"Rebote Cíclico de la Tortuga en Arcos Horizontales"
Autor: Prof. Alexander Arias Londoño
Semillero de Investigación: Semillero MMCC (Modelamiento, Matemática, Computación y Ciencia)
Asignatura: Lógica de Programación y Laboratorio
Entorno de Ejecución: Turtle Academy Playground
Plataforma / Lenguaje: LOGO (Sintaxis en Español e Inglés)
1. Introducción y Contexto Pedagógico
Este informe tutorial detalla la arquitectura, el diseño geométrico y la implementación algorítmica de un programa interactivo en lenguaje LOGO. La aplicación simula el movimiento continuo e infinito de una tortuga rebotando sobre la base inferior del lienzo mediante arcos semicirculares horizontales (U invertida), alternando la dirección del movimiento y el color del trazo.
Objetivos de Aprendizaje para los Estudiantes
- Control de Flujo Iterativo: Manejo de bucles infinitos (
while [1 = 1]) y bucles contados anidados (repeat/repetir). - Manejo de Estado y Variables: Definición, incremento y decremento de variables de posición (
make "x/hacer "x). - Geometría Dinámica: Aplicación del plano cartesiano $$(X, Y)$$ y descomposición de trayectorias en giros y pasos discretos.
- Visualización y Animación: Control fino del renderizado (
st/mt,pd/bl,pu/sl), velocidad (wait/espera) y paleta cromática (setcolor/ponercolor).
2. Requisitos de Diseño y Especificaciones Geométricas
- Lienzo de Ejecución: Cuadrado centrado de 500 × 500 píxeles (rangos: $$X \in [-250, 250]$$, $$Y \in [-250, 250]$$).
- Línea Base (Piso): Fijada permanentemente en $$Y = -250$$.
- Puntos de Contacto (Atardeceres/Aterrizajes): 6 coordenadas discretas sobre la base: $$\text{Puntos } X: {-250, -150, -50, 50, 150, 250}$$
- Parámetros del Arco Semicircular:
- Diámetro: $$100\text{ px}$$ entre punto y punto.
- Ángulo total de giro: $$180^\circ$$ (medio círculo perfecto).
- Descomposición: 18 pasos discretos de $$10^\circ$$ cada uno ($$18 \times 10^\circ = 180^\circ$$).
- Longitud del paso (
fd/ad): $$\approx 8.72\text{ px}$$, derivado del perímetro del semicírculo ($$\pi \times r = \pi \times 50 \approx 157\text{ px}$$; $$157 / 18 \approx 8.72\text{ px}$$).
- Diferenciación de Sentido y Color:
- Ida (Izquierda a Derecha): Color Rojo (
setcolor 1/ponercolor 1). - Regreso (Derecha a Izquierda): Color Azul (
setcolor 4/ponercolor 4).
- Ida (Izquierda a Derecha): Color Rojo (
- Visibilidad y Control Temporal:
- La tortuga debe mantenerse visible durante toda la animación (
st/mt). - Pausa por fotograma (
wait 3/espera 3) para garantizar una animación fluida y pedagógicamente observable.
- La tortuga debe mantenerse visible durante toda la animación (
3. Código Fuente Completo (Sintaxis en Español - LOGO)
; =========================================================
; REBOTE EN ARCOS (VELOCIDAD LENTA Y TORTUGA SIEMPRE VISIBLE)
; Autor: Prof. Alexander Arias Londoño
; Semillero de Investigación: Semillero MMCC
; Asignatura: Lógica de Programación y Laboratorio
; ---------------------------------------------------------
; - Ida (Izquierda -> Derecha): Color ROJO (ponercolor 1)
; - Regreso (Derecha -> Izquierda): Color AZUL (ponercolor 4)
; =========================================================
bp ; Limpiar la pantalla (borrarpantalla)
mt ; Mostrar la tortuga (mostrartortuga)
ponergrosorlapiz 3 ; Grosor del trazo
; BUCLE INFINITO DE REBOTE
while [ 1 = 1 ] [
; --------------------------------------------------------
; FASE 1: IDA (IZQUIERDA A DERECHA) - COLOR ROJO
; --------------------------------------------------------
ponercolor 1 ; Color ROJO
hacer "x -250
repetir 5 [
sl ; Subir lápiz
ponerxy :x -250 ; Posicionar en el punto base
ponerd 0 ; Apuntar hacia ARRIBA (Norte)
mt ; Asegurar visibilidad de la tortuga
bl ; Bajar lápiz para trazar
; Arco horizontal hacia la derecha (recorrido más lento)
repetir 18 [
ad 8.72 ; Avanzar paso del arco
de 10 ; Girar a la DERECHA
mt ; Mantener visible el ícono de la tortuga
espera 3 ; Pausa de 3 milisegundos por paso (más lento)
]
hacer "x :x + 100 ; Avanzar 100px al siguiente punto
]
; --------------------------------------------------------
; FASE 2: REGRESO (DERECHA A IZQUIERDA) - COLOR AZUL
; --------------------------------------------------------
ponercolor 4 ; Color AZUL
hacer "x 250
repetir 5 [
sl ; Subir lápiz
ponerxy :x -250 ; Posicionar en el punto base
ponerd 0 ; Apuntar hacia ARRIBA (Norte)
mt ; Asegurar visibilidad de la tortuga
bl ; Bajar lápiz para trazar
; Arco horizontal hacia la izquierda (recorrido más lento)
repetir 18 [
ad 8.72 ; Avanzar paso del arco
iz 10 ; Girar a la IZQUIERDA
mt ; Mantener visible el ícono de la tortuga
espera 3 ; Pausa de 3 milisegundos por paso (más lento)
]
hacer "x :x - 100 ; Retroceder 100px al siguiente punto
]
]
3.1. Código Fuente Equivalente (Sintaxis Estándar en Inglés)
; =========================================================
; REBOTE EN ARCOS (VELOCIDAD CONTROLADA Y TORTUGA VISIBLE)
; Author: Prof. Alexander Arias Londoño
; Research Group: Semillero MMCC
; Course: Lógica de Programación y Laboratorio
; ---------------------------------------------------------
; - Ida (Izquierda -> Derecha): Color ROJO (setcolor 1)
; - Regreso (Derecha a Izquierda): Color AZUL (setcolor 4)
; =========================================================
cs ; Limpiar la pantalla (clearscreen)
st ; Mostrar la tortuga (showturtle)
setpensize 3 ; Grosor del trazo
; BUCLE INFINITO DE REBOTE
while [1 = 1] [
; --------------------------------------------------------
; FASE 1: IDA (IZQUIERDA A DERECHA) - COLOR ROJO
; --------------------------------------------------------
setcolor 1 ; Color ROJO
make "x -250
repeat 5 [
pu ; Pen up (Subir lápiz)
setxy :x -250 ; Posicionar en el punto base
seth 0 ; Apuntar hacia ARRIBA (Norte)
st ; Asegurar visibilidad de la tortuga
pd ; Pen down (Bajar lápiz)
; Arco horizontal hacia la derecha
repeat 18 [
fd 8.72 ; Avanzar paso del arco
rt 10 ; Girar a la DERECHA
st ; Mantener visible el ícono de la tortuga
wait 3 ; Pausa de animación (velocidad moderada)
]
make "x :x + 100 ; Avanzar 100px al siguiente punto
]
; --------------------------------------------------------
; FASE 2: REGRESO (DERECHA A IZQUIERDA) - COLOR AZUL
; --------------------------------------------------------
setcolor 4 ; Color AZUL
make "x 250
repeat 5 [
pu ; Pen up (Subir lápiz)
setxy :x -250 ; Posicionar en el punto base
seth 0 ; Apuntar hacia ARRIBA (Norte)
st ; Asegurar visibilidad de la tortuga
pd ; Pen down (Bajar lápiz)
; Arco horizontal hacia la izquierda
repeat 18 [
fd 8.72 ; Avanzar paso del arco
lt 10 ; Girar a la IZQUIERDA
st ; Mantener visible el ícono de la tortuga
wait 3 ; Pausa de animación (velocidad moderada)
]
make "x :x - 100 ; Retroceder 100px al siguiente punto
]
]
4. Tabla de Equivalencia de Comandos (Español vs. Inglés)
| Comando Español | Comando Inglés | Descripción / Función |
|---|---|---|
bp / borrarpantalla | cs / clearscreen | Limpia todo el lienzo de trabajo |
mt / mostrartortuga | st / showturtle | Muestra e ilumina la posición del cursor de la tortuga |
sl / subirlapiz | pu / penup | Desactiva el trazo para desplazarse libremente |
bl / bajarlapiz | pd / pendown | Activa el lápiz para dibujar las líneas |
ponergrosorlapiz | setpensize | Define el ancho de la línea en píxeles |
ponercolor | setcolor | Establece el color del lápiz (1 = Rojo, 4 = Azul) |
ponerxy | setxy | Posiciona la tortuga en las coordenadas $$(X, Y)$$ |
ponerd / ponerdireccion | seth / setheading | Orienta el ángulo de despegue (0 = Norte / Arriba) |
ad / adelante | fd / forward | Avanza la cantidad dada de píxeles |
de / derecha | rt / right | Gira los grados especificados hacia la derecha |
iz / izquierda | lt / left | Gira los grados especificados hacia la izquierda |
hacer | make | Declara o actualiza el valor de una variable |
repetir | repeat | Ejecuta un bloque de instrucciones un número fijo de veces |
espera | wait | Genera una pausa temporal de animación |
5. Análisis Estructural y Descomposición Algorítmica
5.1. Inicialización del Entorno
bp/cs: Restablece el lienzo eliminando trazos previos.mt/st: Fuerza la aparición del ícono visual de la tortuga.ponergrosorlapiz 3/setpensize 3: Establece un grosor adecuado para destacar los arcos.
5.2. El Bucle Principal (while [1 = 1])
Garantiza la ejecución continua de la animación sin detenerse, alternando indefinidamente entre la Fase 1 (Ida) y la Fase 2 (Regreso).
5.3. Fase 1: Ida (Izquierda a Derecha)
- Asignación Inicial:
hacer "x -250sitúa el puntero de control en el extremo izquierdo. - Iteración de Saltos (
repetir 5): Ejecuta exactamente 5 arcos consecutivos. - Reposicionamiento y Alineación:
sl/ponerxy :x -250/bl: Mueve la tortuga al punto de despegue sin rayar la pantalla en el traslado.ponerd 0: Orienta la tortuga hacia el Norte (0°). Este es el secreto del diseño: al despegar verticalmente y girar a la derecha (de 10), se forma una curva en forma de U invertida que se eleva y vuelve a descender.
- Construcción del Arco (
repetir 18):ad 8.72avanza una fracción exacta del perímetro.de 10acumula $$180^\circ$$ de curvatura hacia la derecha.mtyespera 3aseguran que la tortuga se muestre fotograma a fotograma sin parpadeos.
- Actualización de Estado:
hacer "x :x + 100suma 100 píxeles a la variable de posición para preparar el despegue del siguiente arco.
5.4. Fase 2: Regreso (Derecha a Izquierda)
- Cambio Cromático:
ponercolor 4conmuta el color de la tinta a Azul. - Asignación Inicial:
hacer "x 250establece la partida en el extremo derecho. - Inversión Geométrica: Mantiene la orientación de despegue vertical (
ponerd 0), pero invierte los giros a la izquierda (iz 10), logrando que la U invertida avance hacia el oeste. - Decremento de Estado:
hacer "x :x - 100resta 100 píxeles por cada arco finalizado.
6. Lecciones de Depuración (Debugging)
Durante el proceso iterativo de desarrollo se identificaron y resolvieron los siguientes retos técnicos:
| Desafío Detectado | Causa Raíz | Solución Aplicada |
|---|---|---|
| Bucles en forma de "C" o desviaciones | La tortuga iniciaba apuntando a 90° (Oriente), provocando giros laterales. | Cambiar el ángulo de despegue a ponerd 0 / seth 0 (Norte) antes de cada arco. |
| Desplazamiento progresivo del piso | La acumulación de pequeñas diferencias decimales inclinaba la base. | Forzar ponerxy :x -250 al inicio de cada arco para anclar el piso exacto. |
| Invisibilidad de la tortuga | El motor de renderizado ocultaba el cursor durante ciclos rápidos de movimiento. | Insertar mt / st de forma explícita dentro del bucle de dibujo repetir 18. |
| Animación demasiado rápida | Ejecución instantánea por defecto del motor LOGO. | Introducir la instrucción espera 3 / wait 3 por paso discreto del arco. |
7. Guía para la Presentación en Clase
Para aprovechar este ejercicio al máximo durante la sesión académica, se sugiere la siguiente secuencia pedagógica:
- Reto Inicial: Pedir a los alumnos que logren un solo arco desde
(-250, -250)hasta(-150, -250). - Generalización con Variables: Introducir la variable
:xy demostrar cómo el comandohacer "x :x + 100automatiza la secuencia. - Anidación de Ciclos: Integrar el
repetir 18del arco dentro delrepetir 5de los saltos. - Análisis de Colores y Sentidos: Discutir por qué es necesario cambiar de
de 10aiz 10al invertir la dirección de desplazamiento. - Desafío Extendido: Proponer a los estudiantes modificar el código para que la altura del arco varíe aleatoriamente o para que la tortuga dibuje 3 arcos de ida y 3 de regreso.
No hay comentarios:
Publicar un comentario