domingo, 5 de julio de 2009

Un ejemplo gráfico

No es fácil dar ejemplos de gráficos sin caer en la banalidad o sin recurrir a instrucciones demasiado específicas (y "oscuras"). No obstante, consideramos que para hacer algo más concreto cuanto hemos dicho, es interesante mostrar un programa, escrito para el ordenador Apple II, en el que se dibuja un cuadrado que se mueve rebotando de un extremo a otro de la pantalla. Con respecto a las tres clasificaciones antes aludidas, este ejemplo entra dentro de la tercera categoría, la de gráficos de alta resolución.

El lado L del cuadrado, que queremos hacer desplazar, se solicita como dato a la entrada (línea 180). Puesto que trabajamos en alta resolución, este valor corresponde al número de pixels utilizados por el ordenador para dibujar cada lado del cuadrado. La limitación a 100 se eligió para tener un cuadrado aceptable, considerando que existen 280 * 160 pixels en las coordenadas X e Y de la pantalla del Apple II. La instrucción HGR en la línea 220 llama la "página 1" de los gráficos de alta resolución del ordenador Apple II (en realidad, este ordenador tiene dos páginas gráficas de alta resolución). La instrucción HPLOT es la que traza el cuadrado como sucesión de cuatro segmentos L consecutivos:

HPLOT VERTI CE1 TO VERTICES

TO VERTICES TO VERTICE4 TO VERTICE1

La repetición final sirve para cerrar el cuadrado. El programa elige al azar la coordenada Y del primer vértice del cuadrado, el situado en la parte superior izquierda, mientras que la X inicial es nula. Los incrementos DTX y DTY, para el desplazamiento del cuadrado son elegidos al azar en las líneas 260 y 270. Las instrucciones 310 y 320 sirven para controlar que el cuadrado no salga de la pantalla, sino que rebote; en efecto, apenas toca los bordes, los incrementos DTX y DTY cambian de signo y así se restan en lugar de sumarse, o viceversa.

En las líneas 340 y 410 se elige el color de trazo. Con HCOLOR = 3 el cuadrado se traza en blanco, mientras que con el valor 0, el color es negro como el fondo de la pantalla. En la práctica, el cuadrado se dibuja primero en blanco y luego en negro y ello equivale a borrarlo, pero después de algunos segundos, que son suficientes para que nuestros ojos puedan verlo. Repitiendo este doble trazo se obtiene un efecto visual de movimiento. El pequeño bucle de espera en la línea 390 sirve para hacer más suave el movimiento.

No hay comentarios:

Publicar un comentario