2do paso: dibujar un polígono (parte II)

Y si hablamos de un polígono regular de tres lados estamos hablando de… ¡levanten la mano!:
si, muy bien, de un triángulo equilátero. El triángulo es el único de los polígonos en el cual si aseguramos iguales magnitudes en sus lados obtenemos igualdad en sus ángulos interiores, y viceversa (si es equilátero es también acutángulo).
Luego de esta cita "culta" trabajemos para ver de que manera puede Pier agregar esta nueva figura a su galería de logros.

Cómo dibujar un triángulo equilátero

Podría empezar a dar la lata de nuevo con ¿cualquier triángulo equilátero? ¿en cualquier posición?… y así. Pero no lo voy a hacer: igual ya sabés que nos pusimos medio obsesivos con esto de definir claramente el problema y la meta, y a ello vamos.

Nuestra nueva meta

No debe hacer falta que te aclare que la imagen siguiente es una muestra gráfica de lo que queremos conseguir (con excepción del fondo, al que de nuevo cambiamos para que te ubiques espacialmente).
triángulo
Quizás ya te hayas dado cuenta que tiene bastantes cosas en común con lo que definimos para el proyecto anterior: la idea básica es no cambiar más que lo mínimo necesario para que Pier dibuje un triángulo equilátero en vez de un cuadrado, y concentrarnos exclusivamente en eso.
Pero esta decisión no es sólo otro típico caso de "flojera" —como dirían los hermanos hispanoparlantes del norte—

Recordemos que la meta final de nuestro Tutorial 2 es llegar a un (1) algoritmo "genérico" que nos permita dibujar CUALQUIER polígono regular, basado en la decisión del usuario del programa.

Y para llegar a algo genérico conviene analizar casos particulares, y ver así qué tienen en común y en qué difieren (si esto no es develar una estrategia… ¡no sé!). Y cuantas más cosas en común podamos ir manteniendo por ahora, mejor… veamos:
Las condiciones iniciales las podemos ir dejando, el tamaño de cada lado lo podemos seguir dejando, y aquellas cuestiones vinculadas al lápiz son —como vimos— más bien decorativas, y no las tocaremos. Tampoco importará si no queda centrado.
¿Te acordás lo de Pensar > Escribir > Programar? Bueno, ponete a pensar, porque si seguimos sin cambiar nada  ¡vamos a terminar dibujando de nuevo un cuadrado, viste…!

on the road again...

De nuevo en la ruta del pensar (no nos vamos a escapar de esto…). Como ya lo dijimos, Pier no lo puede hacer por su cuenta: sólo es un fiel ejecutante de nuestras instrucciones, que deberán ser concisas, claras y libres de ambigüedades.
Comenzá abriendo nuestro anterior proyecto del cuadrado, y guardalo con un nuevo nombre (algo que tenga que ver con un triángulo, vos sabrás).
Nos conviene reusar —remixar— lo anterior para no tener que cambiar el disfraz de Pier, etc.
Por haber decidido el dejar "intactos" los primeros pasos de posicionamiento, manejo del lápiz, etc. Pier comenzará su labor de forma idéntica a cuando se disponía a dibujar un cuadrado — coordenadas (x= -100, y= 100) , etc. —.
Y de hecho el primer lado lo va a dibujar de forma idéntica a aquél "viejo" caso (200 pasos de largo, color azul).
Ahora bien, le llegó el momento de girar en sentido horario: ¿cuántos grados deberá girar?

Llegamos a la incógnita clave en nuestro problema.
Porque digámoslo ahora: no es difícil conjeturar que la otra cosa que debemos cambiar en nuestro algoritmo/programa es el número de repeticiones del bucle: desde 4 a 3 (de los 4 lados del cuadrado a los 3 del triángulo).

Retomando el asunto del ángulo/incógnita clave… quizás te ayuden estas preguntas (o no).
Primera pregunta: cualitativamente hablando ¿el giro deberá ser mayor o menor que los 90º que usábamos para el cuadrado?
Segunda pregunta (más difícil) : ¿a qué tipo de ángulos de los que vimos en la página anterior está asociada la acción de giro que necesitamos? ¿central, interior, exterior? —¡te maté con ésta!
Si vos sos (como algunos de mis alumnitos del Colegio) de aquellos que se lanzan intrépidos por los caminos de lo empírico, muy probablemente no habrás alcanzado ni a analizar la 1ra pregunta que ya estarás probando números para ver como llegar a dibujar nuestro triángulo.
algoritmo
¡ Te deseo la mejor de las suertes, mi amigo! —lo mismo hago cuando algún allegado me comenta que va a concurrir al Casino—. Con algo de suerte no demorarás demasiado en adivinar el número premiado (el que no te voy a revelar bajo ningún concepto).
Nota: recordá que Pier deberá quedar de nuevo paradito en sus coordenadas de inicio (-100, 100)… el polígono debe quedar cerrado. Caso contrario… ¡está mal!

Tras la ruta del saber

Pido perdón por el dejo "sarcástico" de los últimos párrafos: si lograste adivinar el valor del giro, fantástico. Si no lo hiciste, posiblemente te hayas avenido a tratar de contestar las 2 preguntas oportunamente formuladas, sin poder yo desde aquí saber con qué grado de éxito.
Scratch permite este tipo de cosas: enfrentarte a problemas usando distintos acercamientos, con distintas estrategias, construyendo—probando—reconstruyendo ideas de manera de poder llegar a una solución.
Y aún con el tema del ángulo de giro para el triángulo equilátero en veremos (será indubitablemente resuelto en la página siguiente), tengo una cuestión importante que anticiparte:

Mirando al horizonte tendremos un problema más que relevante por resolver: si queremos construir un algoritmo genérico necesitaremos poder encontrar la relación entre el número de lados del polígono regular que querramos dibujar, y el ángulo de giro en particular con que debemos instruir a nuestro amigo Pier (necesitaremos deducir una fórmula matemática, pues).

Dicho de otra manera: si queremos seguir avanzando en el tutorial tendremos que tener en cuenta que la pregunta por el ángulo de giro se nos presentará para todos y cada uno de los polígonos regulares que deba dibujar Pier. ¡Qué mejor que tener una fórmula…!

basado en hechos reales

Una solución posible —que es la que abordé en mis clases con niñ@s de poco más de 10 años, unos angelitos— es realizar un "ataque por fuerza bruta" para descubrir empíricamente los valores de giro necesarios para algunos polígonos regulares, a saber: de 3 lados, de 4, de 5, de 6, de 8, de 9 y de 10 lados.
 
Con esos valores construímos una tabla de entrada/salida para número de lados - ángulo de giro, y de allí a la "pesadilla" de intentar deducir qué relación podíamos encontrar... un problema —para ellos— de regla de tres simple inversa: no es más (ni menos) que darse cuenta que el producto de las dos variables debe dar una constante (360º). Pero seguimos sin tener sustento teórico.
En este Tutorial seguiremos otro acercamiento para llegar a la solución. Usaremos conceptos de geometría para no necesitar de este "adivinar" (que en realidad es más bien un método de prueba y error) que hemos señalado como posible estrategia.
Para nuestro caso del triángulo equilátero lo veo sencillo, para otros polígonos regulares no sé… de cualquier manera este acercamiento "académico" a la solución del problema lo dejamos para la página siguiente (si es que queda alguien aún leyendo…).
Última actualización: Febrero 24, 2014

No hay comentarios.:

Publicar un comentario

© Scratch CodeLab | D153ñ0 b454d0 3n l4 pl4n71ll4 SimpleRWD d3 Oloblogger