Universidad Simón Bolı́var Departamento de Computación y Tecnologı́a de la Información CI3725 - Traductores e Interpretadores Septiembre - Diciembre 2004 Librerı́a figPainter Descripción de la librerı́a La librerı́a figPainter está formada por una clase que se llama Screen.java. Dicha clase contiene a su vez clases que permiten dibujar tanto lı́neas, como cı́rculos y texto sobre una pantalla, en base a un sistemas de coordenas cuyo centro se encuentra en el centro de la misma. A continuación se presenta una descripción más detalladas de las operaciones que pueden hacerse. Clase Screen La clase Screen permite crear una ventana gráfica a partir de un string que representa el tı́tulo de la ventana y dos enteros que representan el número de pixeles que usará la ventana horizontal y verticalmente. El archivo Screen.java contiene el código de las clases Linea, Circulo y Texto además de otras funciones que permite dibujar figuras geométricas en la pantalla. Estas operaciones son: borrar: borra todos los componentes gráficos de la pantalla. estaVacia: devuelve “true” sı́ la pantalla no tiene componentes gráficos, en caso contrario devuelve “false”. dibujarLinea(int x1 ,int y1 , int x2 , int y2 ): dibuja una lı́nea recta en la pantalla. Dado que dos puntos en el sistemas de coordenadas definen una única recta que pasa por ellos, esta función recibe las coordenadas de estos dos puntos: • x1 : coordena en el eje “x” del primer punto que define la recta. • y1 : coordena en el eje “y” del primer punto que define la recta. • x2 : coordena en el eje “x” del segundo punto que define la recta. • y2 : coordena en el eje “y” del segundo punto que define la recta. 1 dibujarLineaColoreada(int x1 ,int y1 , int x2 , int y2 , java.awt.Color1 color) : dibuja una lı́nea en la pantalla del color especı́ficado por el objeto java.awt.Color, dando las coordenadas de los dos puntos que definen la recta: • x1 : coordenada en el eje “x” del primer punto de la recta. • y1 : coordenada en el eje “y” del primer punto de la recta. • x2 : coordenada en el eje “x” del segundo punto de la recta. • y2 : coordenada en el eje “y” del segundo punto de la recta. • color: objetivo Java de tipo Color que representa el color de la lı́nea a dibujar. tieneLineas(int x1 ,int y1 , int x2 , int y2 ): Devuelve “true” sı́ existen lı́neas en la pantalla dentro del rectángulo definido por los puntos (x 1 , y1 ) y (x2 , y2 ), “no tienen linea” en caso contrario. Sus parámetro de entrada son: • x1 : coordenada en el eje “x” que representa el punto izquierdo superior del rectángulo. • y1 : oordenada en el eje “y” que representa el punto izquierdo superior del rectángulo. • x2 : coordenada en el eje “x” que representa el punto derecho inferior del rectángulo. • y2 : coordenada en el eje “y” que representa el punto derecho inferior del rectángulo. borrarLineas(int x1 ,int y1 , int x2 , int y2 ): borra en la pantalla las lı́neas internas al rectángulo definido por los puntos (x1 , y1 ) (x2 , y2 ), donde x1 , y1 , x2 y y2 representa respectivamente: • Coordenada en el eje “x” del punto izquierdo superior del rectángulo. • Coordenada en el eje “y” del punto izquierdo superior del rectángulo. • Coordenada en el eje “x” del punto derecho inferior del rectángulo. • Coordenada en el eje “y” del punto derecho inferior del rectángulo. dibujarCirculo(int x,int y, int r): Dibuja un cı́rculo en la pantalla. Recibe como parámetros las coordenas cartesianas, x e y que representa el centro del cı́rculo y el radio r de la misma. dibujarCirculoRelleno(int x,int y, int r, java.awt.Color color): Dibuja un cı́rculo relleno en la pantalla del color representado por el objeto “Color” de Java .Recibe como parámetros las coordenas cartesianas, x e y que representa el centro del cı́rculo, el radio r de la misma y un entero que representa el color que rellenará el cı́rculo. tieneCirculos(int x1 ,int y1 , int x2 , int y2 ): Devuelve “si hay cı́rculos” en caso de que existan en pantalla cı́rculos inscritos en el rectángulo definido por los puntos (x 1 , y1 ) (x2 , y2 ), en caso contrario devuelve “no hay cı́rculos”. Los parámetros de entrada son: • x1 : representa la coordenada en el eje “x” del punto izquierdo superior del rectángulo. 1 Esta librerı́a usa los colores a través de objetos http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Color.html 2 java.awt.Color tal y como se especifica en • y1 : representa la coordenada en el eje “y” del punto izquierdo superior del rectángulo. • x2 : representa la coordenada en el eje “x” del punto derecho inferior del rectángulo. • y2 : representa la coordenada en el eje “y” del punto derecho inferior del rectángulo. hayCirculoRelleno(int x1 ,int y1 , int r, java.awt.Color color): Devuelve “true” si hay un cı́rculo en la pantalla con centro (x1 , y1 ), radio r y color especificado: borrarCirculos(int x1 ,int y1 , int x2 , int y2 ): borra de la pantalla todos los cı́rculos inscritos en el rectángulo definido por los puntos (x 1 , y1 ) (x2 , y2 ), donde : • x1 : representa la coordenada en el eje “x” del punto izquierdo superior del rectángulo. • y1 : representa la coordenada en el eje “y” del punto izquierdo superior del rectángulo. • x2 : representa la coordenada en el eje “x” del punto derecho inferior del rectángulo. • y2 : representa la coordenada en el eje “y” del punto derecho inferior del rectángulo. dibujarTexto(String text, int x,int y): Escribe un texto en la pantalla a partir de un punto dado. Recibe como argumento el texto que se va a escribir y las coordenas cartesianas x e y a partir del cual se escribirá. hayTexto(int x, int y): Determina si en la pantalla existe algún texto escrito a partir de los puntos x e y. borrarTexto(int x, int y): borra el texto escrito a partir de los puntos x e y. Compilación Para compilar la librerı́a figPainter es necesario ejecutar la siguiente sentencia, en una máquina con java 1.3.1 o superior: javac -source 1.4 Screen.java 3