chuidiang.graficos
Class EscalaGraficaCartesiana

java.lang.Object
  extended by chuidiang.graficos.EscalaGraficaCartesiana
All Implemented Interfaces:
InterfaceEscalaGrafica

public class EscalaGraficaCartesiana
extends java.lang.Object
implements InterfaceEscalaGrafica

Implementación de EscalaGrafica para proporcionar unas coordenadas de usuario cartesianas a un Lienzo.


Constructor Summary
EscalaGraficaCartesiana()
          Crea un nuevo objeto de la clase EscalaGraficaCartesiana.
 
Method Summary
 void anhadeObservador(ObservadorEscalaGrafica unObservador)
          Añade un observador a un cambio en los limites de usuario.
protected  void avisaObservadores()
          Avisa a los obseravadores de límites de usuario que estos han cambiado.
 double dameAlto(double alto)
          Devuelve el alto en pixels de un alto en coordenadas de usuario.
 double dameAncho(double ancho)
          Devuelve el ancho en pixel de un ancho en coordenadas de usuario.
 java.awt.geom.Point2D dameCoordenadaUsuario(java.awt.geom.Point2D punto)
          Devuelve las coordenadas de usuario correspondientes a unas coordenadas x,y en pixels.
 java.awt.geom.Rectangle2D dameExtremos()
          Devuelve un Rectagle2D con los limites de las coordenadas de usuario.
 void eliminaObservador(ObservadorEscalaGrafica unObservador)
          Elimina un observador de cambio en los limites de usuario que se haya añadido previamente con anhadeObservador()
 InterfaceZoomable getZoomable()
          Devuelve una clase adecuada para hacer zoom y desplazar un gráfico con esta EscalaGraficaCartesiana
 void pintaArco(java.awt.geom.Point2D esquina, double ancho, double alto, double arcoInicial, double arcoFinal, java.awt.Color color)
          Dibuja un arco llamando a la clase drawArc() de Graphcis.
 void pintaArcoRelleno(java.awt.geom.Point2D centro, double ancho, double alto, double arcoInicial, double arcoFinal, java.awt.Color color)
          Dibuja un arco llamando a la clase drawArc() de Graphcis.
 void pintaEjeX(double y, java.awt.Color color)
          Pinta un eje de x, desde x minima hasta x maxima.
 void pintaEjeY(double x, java.awt.Color color)
          Dibuja un eje de las y, desde y minima a y maxima.
 void pintaImagen(java.awt.geom.Point2D posicion, java.awt.Image imagen)
          Dibuja una imagen en el area grafica.
 void pintaPoliLinea(java.awt.geom.Point2D[] puntos, java.awt.Color color)
          Dibuja un linea uniendo consecutivamente todos los puntos que se le pasan.
 void pintaPuntos(java.awt.geom.Point2D[] puntos, java.awt.Color color)
          Dibuja los puntos x[i], y[i] de color
 void pintaPuntos(java.awt.geom.Point2D[] puntos, java.awt.Color[] color)
          Dibuja los puntos del x[i], y[i] del color[i]
 void pintaRectanguloRelleno(java.awt.geom.Point2D esquina, double ancho, double alto, java.awt.Color color)
          Dibuja un rectangulo relleno llamando a fillRect() de la clase Graphics.
 void pintaRectanguloRelleno3D(java.awt.geom.Point2D esquina, double ancho, double alto, java.awt.Color color, boolean elevado)
          Dibuja un rectangulo relleno en 3D llamando al metodo fill3DRect() de la clase Graphics.
 void pintaTexto(java.awt.geom.Point2D posicion, java.lang.String texto, java.awt.Color color)
          Dibuja un texto en la posición y del color indicado.
 void tomaExtremos(double xMin, double yMin, double xMax, double yMax)
          Se le pasan los valores minimos y maximos que se van a dibujar en el Lienzo.
 void tomaGraphics(java.awt.Graphics g, int ancho, int alto)
          Guarda el ancho y alto del área de dibujo.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EscalaGraficaCartesiana

public EscalaGraficaCartesiana()
Crea un nuevo objeto de la clase EscalaGraficaCartesiana.

Method Detail

getZoomable

public InterfaceZoomable getZoomable()
Devuelve una clase adecuada para hacer zoom y desplazar un gráfico con esta EscalaGraficaCartesiana

Specified by:
getZoomable in interface InterfaceEscalaGrafica
Returns:
La clase encargada de hacer zoom.

anhadeObservador

public void anhadeObservador(ObservadorEscalaGrafica unObservador)
Añade un observador a un cambio en los limites de usuario. Cuando se cambien losG limites de usuario con tomaExtremos(), se avisará a los observadores.

Specified by:
anhadeObservador in interface InterfaceEscalaGrafica
Parameters:
unObservador - un observador de cambio de extremos en la escala grafica.

dameAlto

public double dameAlto(double alto)
Devuelve el alto en pixels de un alto en coordenadas de usuario. Un alto en coordenadas de usuario es la diferencia entre dos y en coordenadas de usuario.

Parameters:
alto - Alto en coordenadas de usuario.
Returns:
alto en pixels.

dameAncho

public double dameAncho(double ancho)
Devuelve el ancho en pixel de un ancho en coordenadas de usuario. Un ancho en coordenadas de usuario es la diferencia entre dos x en coordenadas de usuario.

Parameters:
ancho - Ancho en coordenadas de usuario.
Returns:
ancho en pixels.

dameCoordenadaUsuario

public java.awt.geom.Point2D dameCoordenadaUsuario(java.awt.geom.Point2D punto)
Devuelve las coordenadas de usuario correspondientes a unas coordenadas x,y en pixels.

Specified by:
dameCoordenadaUsuario in interface InterfaceEscalaGrafica
Parameters:
punto - Un punto en pixels.
Returns:
Un punto en coordenadas de usuario.

dameExtremos

public java.awt.geom.Rectangle2D dameExtremos()
Devuelve un Rectagle2D con los limites de las coordenadas de usuario.

Specified by:
dameExtremos in interface InterfaceEscalaGrafica
Returns:
Las dimensiones del area de dibujo.

eliminaObservador

public void eliminaObservador(ObservadorEscalaGrafica unObservador)
Elimina un observador de cambio en los limites de usuario que se haya añadido previamente con anhadeObservador()

Specified by:
eliminaObservador in interface InterfaceEscalaGrafica
Parameters:
unObservador - Un observador de la escala grafica.

pintaArco

public void pintaArco(java.awt.geom.Point2D esquina,
                      double ancho,
                      double alto,
                      double arcoInicial,
                      double arcoFinal,
                      java.awt.Color color)
Dibuja un arco llamando a la clase drawArc() de Graphcis. El archo forma parte de un circulo que a su vez se puede considerar inscrito en un rectangulo.

Specified by:
pintaArco in interface InterfaceEscalaGrafica
Parameters:
esquina - esquina inferior derecha del rectangulo que contiene al circulo.
ancho - ancho del rectangulo.
alto - alto del rectangulo.
arcoInicial - angulo en el que empieza a dibujarse el arco, en radianes.
arcoFinal - angulo en el que termina de dibujarse el arco, en radianes.
color - Color del arco.

pintaArcoRelleno

public void pintaArcoRelleno(java.awt.geom.Point2D centro,
                             double ancho,
                             double alto,
                             double arcoInicial,
                             double arcoFinal,
                             java.awt.Color color)
Dibuja un arco llamando a la clase drawArc() de Graphcis. El archo forma parte de un circulo que a su vez se puede considerar inscrito en un rectangulo.

Specified by:
pintaArcoRelleno in interface InterfaceEscalaGrafica
Parameters:
esquina - esquina inferior derecha del rectangulo que contiene al circulo.
ancho - ancho del rectangulo.
alto - alto del rectangulo.
arcoInicial - angulo en el que empieza a dibujarse el arco, en radianes.
arcoFinal - angulo en el que termina de dibujarse el arco, en radianes.
color - Color del arco.

pintaEjeX

public void pintaEjeX(double y,
                      java.awt.Color color)
Pinta un eje de x, desde x minima hasta x maxima.

Specified by:
pintaEjeX in interface InterfaceEscalaGrafica
Parameters:
y - Altura a la que se quiere dibujar el x.
color - Color del eje.

pintaEjeY

public void pintaEjeY(double x,
                      java.awt.Color color)
Dibuja un eje de las y, desde y minima a y maxima.

Specified by:
pintaEjeY in interface InterfaceEscalaGrafica
Parameters:
x - Posicion del eje a dibujar.
color - Color del eje.

pintaImagen

public void pintaImagen(java.awt.geom.Point2D posicion,
                        java.awt.Image imagen)
Dibuja una imagen en el area grafica.

Specified by:
pintaImagen in interface InterfaceEscalaGrafica
Parameters:
posicion - Posicion de la esquina superior izquierda de la imagen.
imagen - La imgagen.

pintaPoliLinea

public void pintaPoliLinea(java.awt.geom.Point2D[] puntos,
                           java.awt.Color color)
Dibuja un linea uniendo consecutivamente todos los puntos que se le pasan. La línea será del color indicado.

Specified by:
pintaPoliLinea in interface InterfaceEscalaGrafica
Parameters:
puntos - COMENTARIO.
color - COMENTARIO.

pintaPuntos

public void pintaPuntos(java.awt.geom.Point2D[] puntos,
                        java.awt.Color[] color)
Dibuja los puntos del x[i], y[i] del color[i]

Specified by:
pintaPuntos in interface InterfaceEscalaGrafica
Parameters:
puntos - Array de puntos a pintar, en coordenadas de usuario.
color - Array de colores para los puntos.

pintaPuntos

public void pintaPuntos(java.awt.geom.Point2D[] puntos,
                        java.awt.Color color)
Dibuja los puntos x[i], y[i] de color

Specified by:
pintaPuntos in interface InterfaceEscalaGrafica
Parameters:
puntos - Array de puntos para pintar.
color - Color para todos los puntos.

pintaRectanguloRelleno

public void pintaRectanguloRelleno(java.awt.geom.Point2D esquina,
                                   double ancho,
                                   double alto,
                                   java.awt.Color color)
Dibuja un rectangulo relleno llamando a fillRect() de la clase Graphics. Las coordenadas de esquina, ancho y alto van en coordenadas de usuario.

Specified by:
pintaRectanguloRelleno in interface InterfaceEscalaGrafica
Parameters:
esquina - Esquina inferior izquierda del rectángulo.
ancho - Ancho del rectángulo, en coordenadas de usuario.
alto - Alot del rectángulo.
color - Color del rectángulo.

pintaRectanguloRelleno3D

public void pintaRectanguloRelleno3D(java.awt.geom.Point2D esquina,
                                     double ancho,
                                     double alto,
                                     java.awt.Color color,
                                     boolean elevado)
Dibuja un rectangulo relleno en 3D llamando al metodo fill3DRect() de la clase Graphics. La esquina, ancho y alto que se len pasan van en coordenadas de usuario.

Specified by:
pintaRectanguloRelleno3D in interface InterfaceEscalaGrafica
Parameters:
esquina - Esquina inferior izquierda del rectángulo, en coordenadas de usuario.
ancho - Ancho del rectángulo, en coordenadas de usuario.
alto - Alto del rectángulo.
color - Color del rectángulo.
elevado - Si es o no elevado.

pintaTexto

public void pintaTexto(java.awt.geom.Point2D posicion,
                       java.lang.String texto,
                       java.awt.Color color)
Dibuja un texto en la posición y del color indicado. La posición va en coordenadas de usuario.

Specified by:
pintaTexto in interface InterfaceEscalaGrafica
Parameters:
posicion - COMENTARIO.
texto - COMENTARIO.
color - COMENTARIO.

tomaExtremos

public void tomaExtremos(double xMin,
                         double yMin,
                         double xMax,
                         double yMax)
Se le pasan los valores minimos y maximos que se van a dibujar en el Lienzo. No comprueba que los valores minimos sean mas pequeños que los máximos.

Specified by:
tomaExtremos in interface InterfaceEscalaGrafica
Parameters:
xMin - COMENTARIO.
yMin - COMENTARIO.
xMax - COMENTARIO.
yMax - COMENTARIO.

tomaGraphics

public void tomaGraphics(java.awt.Graphics g,
                         int ancho,
                         int alto)
Guarda el ancho y alto del área de dibujo. Crea una imagen para dibujar del ancho y alto que se le indican y calcula la AffineTransform encargada de transformar coordenadas de usuario en pixels. Pone unos valores minimos y maximos del grafico de -10.0 y 10.0 como valores por defecto.

Specified by:
tomaGraphics in interface InterfaceEscalaGrafica
Parameters:
g - COMENTARIO.
ancho - COMENTARIO.
alto - COMENTARIO.

avisaObservadores

protected void avisaObservadores()
Avisa a los obseravadores de límites de usuario que estos han cambiado.