La maestra de sexto grado me pidio si podiamos usar el programa para calcular la altuira de un triángulo, ya que había sido un tema compliado para muchos de los alumnos. 


CREAR LINEAS 

Para este ejercicio, empleamos LINE (línea), que nos permite dibujar una línea entre 2 puntos. Cada punto en la pantalla debe ser expresado por 2 nùmeros (X e Y), por ello debemos indicar 4 nùmeros (X e Y del punto 1 y X, e Y del punto 2). 

En el siguiente ejemplo elegi el color rojo (color red), y un grosor de linea 3 (penwidth 3).
La línea de establece desde el margen superior izquierdo (0,0) hasta el margen inferior derecho (300,300) 



Luego le especificamos una segunda línea que se cruza, o sea que va desde el margen inferior izquierdo (0,300) hasta el margen superior derecho (300,0).
Al final, agregamos un círculo en medio de la imagen (150,150)



TRIANGULOS

Ya que conocemos el funcionamiento de las líneas, podemos volver a empezar, esta vez declarando 3 variables que usaremos como posiciones (x, x2 que es la posición horizontal del segundo punto e Y que servira para la posición vertical de ambos puntos).



Luego les pido que inventen un valor de X e Y, dos numeros que ellos elijan y que hagan 2 líneas que terminen en ése punto. 



Obviamente empezará una en (x2,y) y otra en( x,y), para terminar en las posiciones inventadas, que para el ejemplo puse (50,50) como vemos en la línea 14. 

Triángulo en Movimiento


Como siempre digo "vamos a hacer un poco de magia negra", reemplazando el par de valores inventados (50,50), por la posición del mouse (mousex, mousey) como usamos en la clase 6 para crear el programa de pintura.

Agregamos la estructura del bucle WHILE TRUE (en la linea 7) y el fin del bucle en la parte inferior (linea 19), y un CLG en la linea anterior a esta (linea 18) para que no vayan quedando los triangulos marcados al pasar el mouse. 
Agregue FASTGRAHICS (linea2) y REFRESH (linea 17) para evitar parpadeos en los graficos (como explicamos en la clase 6).





Altura del triangulo Interactiva

En el pizarron les indico que la distancia hasta la recta base es Y (como vemos en el grafico en la flecha rosada), y por conveniencia, la altura sera una linea recta entre mousey e y, por lo tanto, ¿quien puede decirme como calcular la altura?  
    ...si, varios se dan cuenta que restando mousey - y se obtiene la altura del  mismo, usando un print mousey-y lo visualizamos en el area de texto en tiempo real mientras movemos el mouse.

Para diferenciar esta linea usamos color red (linea 17), y luego indicamos que la proxima linea va desde la posicion del mouse  (mousex,mousey) hasta la linea base (mousex, y) como se ve en la linea 18.




Para tener todo en la vista de graficos, elimine el print, para reemplazarlo por una definicion de texto con fuente impact de tamaño 30 y peso 10 (linea 22) y luego un texto en la posicion del mouse (mousex, mousey) pero en vez de indicar texto como hicimos en la clase 10 (con comillas "texto1") debemos convertir la cuenta almacenada en la variable A (linea 19) con la funcion Lower(A).



como retoque final, agregue una copia de esta linea pero con la posicion desfasada hacia arriba y la derecha 4 pixels (mousex+4 , mousey+4) de color amarillo para dar contraste.



#codigo para copiar, pegar y ejecutar
clg
fastgraphics
x = 10
x2 = 200
y = 200
A=0
while true
        color blue
        penwidth 3
               #dibuja el triangulo
        line x,y , x2 , y
        line x,y , mousex,mousey
        line x2,y , mousex,mousey
               #altura del triangulo
        color red
        line mousex,mousey , mousex,y
               #calculamos la altura y la guardamos en A
        A= y - mousey
               #Escribe en pantalla la altura del triangulo
        color black
        font "impact", 30, 10
        text mousex, mousey , lower(A)
        color yellow
        text mousex+4, mousey-4 , lower(A)
        refresh
        clg

endwhile