Este post, es paralelo ya utiliza lo que vimos en la clase 8 y clase 9 sobre imgload, pero es el desarrollo de un contenido para TERCER GRADO, ya que estaban desarrollando el contenido de MEDIDAS y trabajando con metros, kilometros, etc. Por ello QUE MEJOR QUE DARLE PODER a los alumnos y calcular tamaños de planetas?


Para emprezar en cada PC había una carpeta con imagenes de los 8 planetas del sistema solar que descargué de internet y las escalé para que tengan 100x100 pixels (excepto en saturno y urano donde dejé que una de sus medidas sea 100, y conservar los anillos).

Además, en la carpeta había un archivo de Basic llamado planeta.KBS con el diámetro de los planetas en kilómetros (pagina de datos) almacenados en variables, y una variable esc almacenando el valor de 1 (que explicaremos más adelante).

      #planetas rocosos
mercurio=4878
venus =12104
tierra =12756
marte =6749
      #planetas Gaseosos
jupiter=142800
saturno=120000
urano=51120

neptuno=49528

esc=1

Pueden descargar éstas imágenes que usamos en clase:






EMPEZANDO LA CLASE

En la escuela, enseño BASIC256 a los alumnos de cuarto, quinto y sexto, aunque a veces usamos las funcions gráficas con los de tercer grado como haremos hoy. 
  Ya conocen bastante bien el comando CIRCLE que lleva 3 numeros, uno para la posicion horizontal, otra para la vertical, y otro para el tamaño. Es fácil explicar IMGLOAD comparandolo a CIRCLE ya que sólo debemos agregar al final el nombre del archivo al que llaman, en éste caso el nombre del planeta, por ejemplo para ver la tierra debemos usar:


IMGLOAD  150, 150, 1 , "tierra"
   
 Para nuestro ejemplo, la tierra tendra el tamaño 1, entonces les explico que para crear a mercurio usaremos en vez del número 1 en la tercer posición, una división de las variables mercurio y tierra, de ésta manera (el valor 30 es para que mercurio esté más a la izquierda):

IMGLOAD  30, 150,  mercurio/tierra  , "mercurio"



COMPLETEN EL RESTO DE LOS PLANETAS

Les pido a los alumnos que hagan el resto de los planetas gaseosos, y los completan sin superponerlos (son muy cuidadosos). Voy a tratar de replicar el código que generaron los chicos en la siguiente imagen: 





GIGANTES GASEOSOS

Cuando llegan a los gigantes gaseosos es cuando empiezan los gritos de horror, los gigantes gaseosos son tan absurdamente grandes que impiden ver a los pequeños planetas rocosos que están detrás. Por ello les pido que los agreguen antes como vemos en la imagen.





ESCALANDO TODO

Para poder apreciar los tamaños, les pido que multipliquen las escalas de todos los planetas (incluso el de la tierra) por la variable esc que vale 1. Luego cambiamos el valor de esc por alguno menor como 0.5 o 0.3 como se ve en la imagen:





INTERACTIVIDAD

En éste punto ya podemos terminar el ejemplo de la clase, pero para quienes frecuentan el blog y los alumnos más grandes usaremos un bucle infinito (WHILE TRUE ... ENDWHILE) para encerrar el IMGLOAD de todos los planetas.
Para que la aplicación sea más rápida usaremos:

  • FASTGRAPHICS al inicio del programa y REFRESH luego de cada IMGLOAD.
  • esc = mousex/50 hace que los planetas crezcan y se achiquen con el movimiento del mouse.
  • GRAPHSIZE 600,550  amplia el área de gráficos de 300x300 a 600x550 pixels.






#Código Completo de la Clase

FASTGRAPHICS
GRAPHSIZE 600,550
CLG

      #planetas rocosos
mercurio=4878
venus =12104
tierra =12756
marte =6749
      #planetas Gaseosos
jupiter=142800
saturno=120000
urano=51120
neptuno=49528

WHILE TRUE
      esc = mousex/50
      rect 0,0,600,550 #dibuja el cielo negro
      IMGLOAD 400, 100, jupiter/tierra * esc , "jupiter"
      IMGLOAD 200, 400, saturno/tierra * esc , "saturno"
      IMGLOAD 260, 200, urano/tierra * esc , "urano"
      IMGLOAD 300, 100, neptuno/tierra *esc , "neptuno"
      IMGLOAD 150, 80, 1 * esc , "tierra"
      IMGLOAD 20, 80, mercurio/tierra * esc , "mercurio"
      IMGLOAD 80, 80, venus/tierra * esc , "venus"
      IMGLOAD 200, 80, marte/tierra * esc , "marte"
      REFRESH
      PAUSE 0.1
      CLG

ENDWHILE