sábado, 15 de noviembre de 2014

Polígonos regulares


En este primer proyecto planteamos dibujar polígonos regulares en Scratch. Una excusa perfecta para trabajar la herramienta lápiz y los movimientos.
Elegimos un objeto que será el que dibuje el polígono mientras se mueve por el escenario, podéis elegir cualquier personaje de la biblioteca de Scratch o bien dibujar uno propio. Yo voy a quedarme con nuestro gatito que aparece por defecto cuando apretamos el botón Crear.



Supongamos que queremos pintar un cuadrado:

  1. Borramos el escenario ( por si hubiera algo pintado).
  2. Subimos el lápiz
  3. Colocamos a nuestro personaje en la posición inicial para empezar a pintar.
  4. Bajamos el lápiz (para empezar a pintar)
  5. Avanzamos la longitud del lado del cuadrado ( por ejemplo 100 pasos)
  6. Giramos 90 grados hacia la izquierda
  7. Avanzamos la longitud del lado del cuadrado
  8. Giramos 90 grados
  9. Avanzamos la longitud del lado
  10. Giramos 90 grados
  11. Avanzamos la longitud del lado
  12. Subimos el lápiz.
  13. Colocamos nuestro personaje en la esquina inferior izquierda.


Nuestro gatito ha dibujado un perfecto cuadrado:


Mejoras que vemos en nuestro código: Podemos repetir cuatro veces mover y girar con el bloque repetir.



Vemos que la animación es demasiado rápida y nos gustaría que nuestro gatito se moviera más despacio para ver mejor la animación. Para ello introducimos un nuevo bloque, esperar x segundos. Tenemos que mover menos pasos y esperar para volver a mover. Entonces en vez de mover 100 pasos podemos repetir 10 veces mover 10 pasos y esperar 0.03 segundos por ejemplo. Probamos este código:



Perfecto!

Vamos ahora a dibujar un pentágono, en este caso como son cinco lados, tenemos que repetir 5 veces el movimiento de pintar un lado y también deberemos cambiar el ángulo de giro ¿Cuántos grados deberemos girar?



Consultamos los ángulos de un polígono regular y nos damos cuenta que tenemos que dividir 360 grados entre el número de lados en este caso, entre 5, con lo que obtenemos 72º. Bien, probamos el nuevo código.



Y obtenemos, en efecto, un pentágono


Supongamos que queremos pintar ahora un hexágono, ¿qué tendremos que cambiar en nuestro código?. Pues como antes el número de veces que repetimos un lado, en este caso 6 y el ángulo de giro, en este caso 360/6=60. Utilizamos un código operador para hacer la división y probamos el nuevo código.


Llegados a este punto, creo que ya podemos introducir variables. Vamos a crear una variable que guarde el número de lados y que sea nuestro personaje el que pregunte cuántos lados tendrá el polígono regular. Este bloque lo encontraremos en sensores. Primero creamos una variable, lados, en Datos ( color naranja) y después hacemos que el personaje pregunte por el número de lados, la respuesta será el valor de nuestra variable lados.


Si probamos ahora el código, vemos que algo no funciona bien para polígonos con más de 7 lados, puesto que nuestro personaje se sale del escenario. Debemos pues dibujar polígonos regulares con un radio fijado previamente para que nuestro dibujo sea siempre del mismo tamaño aunque tenga muchos lados, es decir, debemos calcular la longitud del lado en función de ese radio que fijemos.

Consultamos ese cálculo. Aplicando el teorema de pitágoras obtenemos que longitud de la mitad del lado= radio * seno de la mitad del ángulo central.


por tanto, en nuestro proyecto tenemos que modificar el número de pasos que avanzamos para dibujar el lado. Utilizamos los bloques operadores. Podemos crear otra variable que se llame radio, aunque en este caso podemos considerarla una constante que fijaremos a un determinado número, por ejemplo 120. Y una variable llamada longitud que guardará la longitud que calculamos en función del número de lados y el radio.


Ahora toca modificar el código del movimiento con esta variable longitud:



Bajamos un poco el lugar inicial (x:0 y:-100) de nuestro personaje para empezar a pintar y que nuestro polígono quede más centrado.


Perfecto!!

En mi ejemplo original, era un lápiz el que pintaba y el gatito estaba fijo en la esquina izquierda para preguntar el número de lados. Simplemente añadimos algún código de control, avisamos al lápiz para que pinte, modificamos el color del lápiz para que vaya cambiando en cada polígono y añadimos un pequeño sonido "pop" en cada lado, al terminar el dibujo volvemos a preguntar. Podéis ver el código en este proyecto.


0 comentarios:

Publicar un comentario

Licencia CC BY-NC-SA. Con la tecnología de Blogger.

Mi twiter