miércoles, 23 de septiembre de 2026

Informe Tutorial: Diseño de Aplicación Animada en LOGO -Rebote Cíclico de la Tortuga en Arcos Horizontales"

 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

  1. Lienzo de Ejecución: Cuadrado centrado de 500 × 500 píxeles (rangos: $$X \in [-250, 250]$$, $$Y \in [-250, 250]$$).
  2. Línea Base (Piso): Fijada permanentemente en $$Y = -250$$.
  3. Puntos de Contacto (Atardeceres/Aterrizajes): 6 coordenadas discretas sobre la base: $$\text{Puntos } X: {-250, -150, -50, 50, 150, 250}$$
  4. 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}$$).
  5. 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).
  6. 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.

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ñolComando InglésDescripción / Función
bp / borrarpantallacs / clearscreenLimpia todo el lienzo de trabajo
mt / mostrartortugast / showturtleMuestra e ilumina la posición del cursor de la tortuga
sl / subirlapizpu / penupDesactiva el trazo para desplazarse libremente
bl / bajarlapizpd / pendownActiva el lápiz para dibujar las líneas
ponergrosorlapizsetpensizeDefine el ancho de la línea en píxeles
ponercolorsetcolorEstablece el color del lápiz (1 = Rojo, 4 = Azul)
ponerxysetxyPosiciona la tortuga en las coordenadas $$(X, Y)$$
ponerd / ponerdireccionseth / setheadingOrienta el ángulo de despegue (0 = Norte / Arriba)
ad / adelantefd / forwardAvanza la cantidad dada de píxeles
de / derechart / rightGira los grados especificados hacia la derecha
iz / izquierdalt / leftGira los grados especificados hacia la izquierda
hacermakeDeclara o actualiza el valor de una variable
repetirrepeatEjecuta un bloque de instrucciones un número fijo de veces
esperawaitGenera 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)

  1. Asignación Inicial: hacer "x -250 sitúa el puntero de control en el extremo izquierdo.
  2. Iteración de Saltos (repetir 5): Ejecuta exactamente 5 arcos consecutivos.
  3. 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.
  4. Construcción del Arco (repetir 18):
    • ad 8.72 avanza una fracción exacta del perímetro.
    • de 10 acumula $$180^\circ$$ de curvatura hacia la derecha.
    • mt y espera 3 aseguran que la tortuga se muestre fotograma a fotograma sin parpadeos.
  5. Actualización de Estado: hacer "x :x + 100 suma 100 píxeles a la variable de posición para preparar el despegue del siguiente arco.

5.4. Fase 2: Regreso (Derecha a Izquierda)

  1. Cambio Cromático: ponercolor 4 conmuta el color de la tinta a Azul.
  2. Asignación Inicial: hacer "x 250 establece la partida en el extremo derecho.
  3. 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.
  4. Decremento de Estado: hacer "x :x - 100 resta 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 DetectadoCausa RaízSolución Aplicada
Bucles en forma de "C" o desviacionesLa 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 pisoLa 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 tortugaEl 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ápidaEjecució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:

  1. Reto Inicial: Pedir a los alumnos que logren un solo arco desde (-250, -250) hasta (-150, -250).
  2. Generalización con Variables: Introducir la variable :x y demostrar cómo el comando hacer "x :x + 100 automatiza la secuencia.
  3. Anidación de Ciclos: Integrar el repetir 18 del arco dentro del repetir 5 de los saltos.
  4. Análisis de Colores y Sentidos: Discutir por qué es necesario cambiar de de 10 a iz 10 al invertir la dirección de desplazamiento.
  5. 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