Next: C.2.1 Los constructores de
Up: AÏDA
Previous: AÏDA
Desde el punto de vista de AÏDA, una imagen es un objeto LE-LISP que
puede ser dibujado en una pantalla gráfica. AÏDA proporciona un conjunto
de objetos que implementan imágenes
atómicas
y compuestas
,
así como un lenguaje de descripción de imágenes que permite construir
nuevas imágenes mediante la aplicación de constructores de imágenes
a las ya definidas.
Las imágenes se representan en LE-LISP mediante estructuras capaces
de responder a mensajes como:
- display, que indica una petición para dibujar la imagen en pantalla.
La petición puede ser para la imagen completa o para una parte o región
de la misma.
- invert-display, que muestra una imagen en video inverso.
- bounding-box, que se utiliza para obtener el menor
rectángulo capaz de contener a la imagen.
- width, que devuelve la anchura de la bounding-box.
- height, que devuelve la altura de la bounding-box.
- x e y devuelven, respectivamente, las coordenadas horizontal y
vertical del display point, que se corresponde con la esquina
de la bounding-box más cercana al eje de coordenadas. Siempre
que se dibuja una imagen en pantalla, se utiliza el display point
como punto de referencia.
También es posible modificar físicamente las im genes. Para ello se hace uso
de unos métodos llamados transformaciones. Con ello se evita la creación
o asignación de imágenes completamente nuevas. Sin embargo, las transformaciones no
suelen tener un efecto inmediato en pantalla, sino que debe ser el propio
programador el que indique explícitamente que se redibujen ciertas imágenes.
Como precaución hay que tener en cuenta que hay imágenes que no son
modificables físicamente; en tales casos el resultado correcto está en la
imagen devuelta, ya que la imagen argumento no habrá sufrido cambios.
Transformaciones muy utilizadas son:
- translate, utilizada para desplazar la posición de la imagen en la pantalla.
No es aplicable sobre cadenas de caracteres.
- grow, que se utiliza para modificar las dimensiones de la imagen.
Los iconos y las cadenas de caracteres no pueden modificar su tamaño.
- resize, prácticamente igual que grow excepto que se puede indicar
que la imagen sólo crezca (o mengüe) en una dimensión.
Otros métodos interesantes son intersecp, un predicado que indica si un
punto en una imagen está localizado dentro de una determinada sección
rectangular de la pantalla, y map-constituents, que permite aplicar
una función a todas las imágenes que a su vez componen la imagen, aunque tan solo
en un primer nivel de descomposición.
AÏDA también proporciona un conjunto de macros que facilitan
la definición del tamaño de las imágenes: Estas macros son:
- #<tanto-por-ciento>wdisplay o #<tanto-por-ciento>wd, que
devuelven un entero que representa la porción del ancho de la pantalla
indicada por el entero <tanto-por-ciento>.
- #<tanto-por-ciento>hdisplay o #<tanto-por-ciento>hd,
como la anterior, pero para la altura.
- #<número>wchar o #<número>wc devuelve el ancho en pixels
del espacio en blanco en la fuente actual multiplicado por <número>.
- #<número>hchar o #<número>hc, como la anterior pero para
la altura.
Next: C.2.1 Los constructores de
Up: AÏDA
Previous: AÏDA
Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997