CODINGLISTINGS ★ 3D GRAF|Tu Micro Amstrad) ★

3D GrafCoding Listings
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

PUNTO POR PUNTO

La resolución gráfica de los CPC AMSTRAD es una de sus cualidades más apreciadas. 128.000 puntos individuales sobre la pantalla y los comandos del BASIC que los gestionan lo avalan asi.

Tres son los comandos básicos destinados a facilitar la creación de figuras y dibujos sobre la pantalla de nuestro ordenador: PLOT, MOVE y DRAW. Antes de utilizarlos conviene que nos familiaricemos con el sistema de coordenadas empleado para definir únivocamente la situación de un punto sobre el monitor.

Cuando encendemos o reinicializa-mos el ordenador la pantalla gráfica coincide con la de texto, y ambas están dispuestas a representar la información que nosotros les enviemos. Si bien en la de texto se toma como referencia la esquina superior izquierda, el origen para la pantalla gráfica está situado ini-cialmente en el mismo lado, pero en la esquina inferior. A este punto se le asigna las coordenadas (0,0).

UN SISTEMA DE REFERENCIA

Para no formarnos un fenomenal lío, desde (0,0) definimos un sistema de ejes XY. El X será el horizontal y tiene de largo 640 puntos (pixels), mientras que el vertical (Y) mide 400. Basándonos en él, determinaremos en cualquier momento, mediante el par (x,y) la posición sobre la pantalla de un punto.

Alguien puede pensar que las anteriores longitudes, al igual que sucede en la pantalla de texto, dependen del modo de ésta. La respuesta es que sea cual sea el modo, la pantalla gráfica es una retícula de 640 x 400 puntos, pero lo que sí cambia de uno a otro es el tamaño de los pixels y el número de colores que simultáneamente podemos representar.

En modo 0 (baja resolución), un punto sobre la pantalla ocupa cuatro posiciones. En modo 1, dos, mientras que en el modo 2 (alta resolución), la relación horizontal es uno a uno. Sin embargo, independientemente del modo de pantalla en que nos encontremos todos los puntos verticalmenle ocupan dos posiciones.

Además, el BASIC de AMSTRAD nos permite redefinir el origen si así lo consideramos oportuno. Para conseguirlo basta ejecutar una instrucción donde incluyamos el comando ORIGIN. Per ejemplo, ORIGIN 320,200 traslada el punto (0,0) hasta el centro de la pantalla.

La sintaxis completa para este comando es:

ORIGIN x,y [,col. izqda., col. dcha., fila sup., fila inf.]

donde x,y son las coordenadas del nuevo origen gráfico seleccionado por nosotros. Además, los cuatro parámetros opcionales encerrados entre corchetes, permiten al igual que en la pantalla de texto, definir una ventana gráfica de las dimensiones que precisemos.

A esta zona le podemos asignar cualquier color de fondo de los definidos por defecto en la paleta de nuestro ordenador (o cualquier otro que seleccionemos) mediante la orden GRAPHICS PAPER. Basta para ello indicar tras ella un código de papel; por ejemplo, teclea las siguientes instrucciones:

10 MODE 1
20 ORIGIN 320,200,260,380,230,170
30 GRAPHICS PAPER 3

Tras efectuar RUN en este minipfo-grama, una ventana gráfica de 120 x 60 pixels habrá quedado definida en el centro de la pantalla. Alguien estará pensando que esta afirmación no es cierta, pues, en realidad, parece no haber sucedido nada. Sin embargo teclea como comando directo GLG, y tras esto comprobarás que un cuadrado de color rojo aparece en el centro de la pantalla.

La misión de esta última palabra clave es similar a lo que CLS efectúa en la ventana de texto, es decir, limpia el contenido de la pantalla gráfica dejándola del color de papel que estuviera definido. Una variante de esta instrucción consiste en situar tras GLG el código de papel. De esta manera, si susti

tuyes la línea 30 anterior por:

30 CLG 3

verás que se consigue idéntico resultado. En resumen, si esta instrucción se emplea sin parámetro borra la pantalla gráfica dejándola del color de papel que previamente estuviera seleccionado. Sin embargo, si utilizamos tras ella un código de color en este último el que tiene la ventana.

LOS MODOS DE TINTA

Una particularidad muy especial de les comandos gráficos que a continuación discutiremos es la de poder seleccionar la forma de interacción que tendrán los nuevos puntos dibujados sobre los ya presentes en la pantalla.

Cuando seleccionamos un modo de tinta, el ordenador antes de trazar un punto ejecuta una operación lógica entre las tintas antigua y nueva del pixel que ocupará esa posición en la pantalla. De ahí que los modos reciban los nembres de AND, OR y XOR, además de un cuarto, «normal» en el cual se dibuja sin interacción.

¿Qué significa esto? Nada más útil: el AMSTRAD nos proporciona toda clase de facilidades para sobre impresionar, hacer aparecer y desaparecer figuras a nuestro antojo, combinar colores, etc, cuando trabajemos con gráficos.

Cuando el ordenador efectúa una operación lógica entre dos valores enteros (los números de pluma están en el rango 0-15), la realiza entre los bits individuales de cada cantidad. Entonces, si por ejemplo, hemos trazado una figura con la pluma número 1, y sobre ella otra con la número 2, al emplear el modo gráfico XOR, la superficie común tendrá el color asignado en ese momento a la pluma 3, pues 1 XOR 2 es 3.

Para el resto de las operaciones lógicas se sigue el mismo principio y de ahí podemos prever el color final de los puntos que interaccionan. Por último, señalar que en modo «normal», prevalecen siempre en primer plano los últimos trazos dibujados.

LOS COMANDOS GRAFICOS

Tras la definición de los conceptos anteriores ha llegado el momento de explorar las posibilidades gráficas de nuestro ordenador. Al principio hicimos referencia a tres comandos: MO-VE, PLOT y DRAW.

Su sintaxis sigue en todos los casos la misma construcción:

COMANDO coord. xt coord. y, [código de pluma, modo de tinta]

donde «código de pluma» debe ser cualquier valor entero en el rango 0-15. y «modo de tinta» un número de 0 a 3, representativo de modo «normal» de interacción. XOR, AND y OR, respectivamente. Estos dos últimos parámetros son opcionales y de no especificarse nada, el ordenador asumirá que debe dibujar con última pluma gráfica seleccionada y en modo de tinta o («normal»).

El código de pluma también puede especificarse directamente mediante el comando GRAPHICS PEN. A este le siguen dos parámetros separados por comas: el primero es un número de pluma, mientras que el segundo segUn sea 0 ó 1, determina el modo de fondo sobre el que se imprimirán los puntos (opaco o transparente, respectivamen te).

Pues bien, MOVE es a la pantalla gráfica lo que LOCATE a la de texto, es decir, sitúa el cursor gráfico en el punto de coordenadas (x.y) indicado PLOT se comporta de idéntica manera, pero además, imprime un punto en dicha localización.

La misión del comando DRAW es la de trazar una linea recta entre la posición actual del cursor gráfico y el punto de coordenadas (x,y) especificado tras él. Pongamos en práctica con un sencillo ejemplo todo lo anterior. Teclea las siguientes lineas:

10 MODE 0:BORDER 0:PAPER: 0 20 INK 0,0.INK 1,18:INK 2,6:INK 3,9:INK 4,15: INK 5,17:INK 7,11,15
30 FOR I=0 TO 200 STÉP 2:MOVE 180,100+I:DRAW 460,100+I.2:NEXT
40 FOR 1=0 TO 100 STEP 2
50 MOVE 90,50+1:DRAW 270,50+1,1,0 :MOVE 90,250+1:DRAW 270,250+1,3,1: MOVE 370,50+1 :DRAW 550,50+1.4,2: MOVE 370,250+1DRAW 550,250+1.5,3 :NEXT

Cuando lo ejecutes, aparecerá en el centro de la pantalla un gran cuadrado rojo trazado con la pluma número 2. y en cada esquina de éste otros cuatro que interaccionan con él. Analicemos el por qué de estos resultados: el del lado inferior izquierdo se sobreimprime pues ha sido dibujado en modo de tinta 0 (normal). El de la derecha (impreso con la pluma 3) le ha «comido» la esquina al cuadrado central. Esto se debe a que hemos utilizado en su trazado el modo AND, y como 2 AND 3 es 0. del color de esta pluma ha quedado la intersección (negra).

El situado encima de este último, fue trazado por la pluma número 5. en modo OR. Si efectuamos la operación lógica 2 OR 5 obtenemos 7. En la línea 20 le asignamos a la pluma 7 parpadeo entre azul y naranja, y efectivamente es lo que se representa en la zona común.

Finalmente, el situado a la izquierda se dibujó con la pluma 3 (verde), pero en modo XOR. El resultado en la intersección se deduce fácilmente tras efectuar 3 XOR 2. Esto implica que la zona común a ambos cuadrados es del color definido en la pluma 1 (verde brillante).

LOS COMANDOS RELATIVOS

Una extensión de los comandos gráficos comentados la proporciona la inclusión en el BASIC de AMSTRAD de tres palabras clave análogas a las anteriores: MOVER, PLOTR, y DRAWR. Su sintaxis es en todo idéntica:

COMANDO coord. x, coord. y, [código de pluma, modo tinta)

pero la diferencia fundamental estriba en que las tres fijan la nueva posición del cursor gráfico en la localización for mada a partir de las coordenadas antiguas más el incremento en x e y dado en la instrucción.

Si por ejemplo, la posición actual del cursor es (100,200), al ejecutar una instrucción DRAWR 50,80 en la pantalla aparecerá una linea que une los puntos de coordenadas (100,200) y (100+50-150,200+80=280).

Lamentablemente no se ha contemplado la implantación de un comando destinado a trazar circunferencias. No obstante, esta deficiencia podemos solventarla (aunque soportando una relativa lentitud) partiendo de la ecuación de éstas en coordenadas polares
En el caso de una circunferencia (te centro en el punto (a,b) y radio R, el programa que las dibujara podría tener el siguiente aspecto:

10 CLS:DEG
20 ORIGIN a,b
30 FOR I=1 TO 360
40 PLOT R*COS(I),R*SIN(I)
50 NEXT

donde a. b, y R serian sustituidos per ' los valores seleccionados.

Los usuarios de los modelos CPC r 6128 pueden aprovechar además un ' nuevo comando destinado a rellenar la región interior de un dibujo previamente confeccionado. Su sintaxis es:

FILL código de tinta y tras ejecutarlo se comienza a rellenar a partir de la posición actual del cursor 1 gráfico. Por este motivo es muy importante asegurarse de que ocupa la posición correcta y que en los limites de la zona a rellenar no existen puntos de discontinuidad, si no queremos formar un fenomenal lio. Para comprobar su funcionamiento puedes añadir al programa anterior las dos lineas siguientes:

60 MOVE 0,0
70 FILL 3

Para terminar señalaremos la posibilidad de definir plantillas gráficas para el trazado de rectas. Se definen empleando la orden MASK. Su construcción es:

MASK (tipo de plantilla], (estado del primer pixel)

donde «tipo de plantilla» es una cantidad entre 0 y 255 que determina la forma en que serán impresos un grupo de 8 puntos adyacentes y «estado del primer punto» será 1 ó 0, según qué que- » ramos que esté iluminado o no.

Por ejemplo, si pensamos trazar lineas discontinuas uniformes utilizaremos antes de las órdenes DRAW una instrucción MASK &X10101010,1. Prueba también ahora a modificar el parámetro «modo de tinta» al que hacíamos referencia en el comando GRAPHICS PEN.

Como demostración de las posibilidades gráficas de nuestro ordenador hemos preparado un programa que dibuja la representación en tres dimensiones de funciones de dos variables.

Tu Micro Amstrad

★ PUBLISHER: TU MICRO AMSTRAD
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHORS:

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» 3D  Graf    (Tu  Micro  Amstrad)    LISTINGDATE: 2014-08-28
DL: 229
TYPE: text
SiZE: 3Ko
NOTE:

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » Degrees (Computing with the Amstrad)
» Coding Src's » Graphic - Delirium (CPC Revue)
» Coding Src's » Graphic - Screen Rattle (Popular Computing Weekly)
» Coding Src's » Roll-It
» Coding Src's » Scandinavian Flag Demo (Amstrad Action)
» Coding Src's » Bankflip (Schneider Aktiv)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 349 millisecondes et consultée 1874 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.