00001 //* Módulo : xyaxln.h 00002 // _Desc_ : Declara classe XYLinearAxis. 00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante. 00004 // _Data_ : 06 mar 96. 00005 00006 #ifndef __XYLINEARAXIS_H 00007 #define __XYLINEARAXIS_H 00008 00009 #include "xyax.h" 00010 00011 //* XYLinearAxis 00012 // Classe especializada que define um eixo linear 00013 // com escala decimal. 00014 class XYLinearAxis: public XYAxis 00015 { 00016 public: 00017 00018 //* Construtores e Destrutor 00019 //* Construtor A 00020 XYLinearAxis ( 00021 double mn, // valor mínimo que o eixo representa (assume) 00022 double mx, // valor máximo que o eixo representa (assume) 00023 XYCoordinate x, // referência para a coordenada x 00024 XYCoordinate y, // referência para a coordenada y 00025 long color, // cor do eixo 00026 double size, // tamanho normalizado do eixo 00027 double rot, // ângulo, em graus, no sentido anti-horário 00028 double step, // passo normalizado dos ticks da escala 00029 XYScaleDecorator* decor, // decorador da escala 00030 XYText* title, // texto a ser desenhado com o eixo 00031 xybool arrow = xytrue, // seta terminadora (xytrue or xyfalse) 00032 xybool visible = xytrue); // visibilidade 00033 00034 //* Construtor B 00035 XYLinearAxis ( 00036 double mn, // valor mínimo que o eixo representa (assume) 00037 double mx, // valor máximo que o eixo representa (assume) 00038 XYCoordinate x, // referência para a coordenada x 00039 XYCoordinate y, // referência para a coordenada y 00040 long color, // cor do eixo 00041 double size, // tamanho normalizado do eixo 00042 double rot, // ângulo, em graus, no sentido anti-horário 00043 xybool arrow = xytrue, // seta terminadora (xytrue or xyfalse) 00044 xybool visible = xytrue); // visibilidade 00045 00046 //* Destrutor da classe XYLinearAxis 00047 virtual ~XYLinearAxis (void) {}; 00048 00049 //* Mínimos/Máximos 00050 //* Método que calcula o valor mínimo do eixo quando um determinado valor sobre ele, anteriormente numa determinada posição, é deslocado para a nova posição (x0, y0) 00051 virtual double defineMinPoint(double value, int x0, int y0) const; 00052 00053 //* Método que calcula o valor máximo do eixo quando um determinado valor sobre ele, anteriormente numa determinada posição, é deslocado para a nova posição (x0, y0) 00054 virtual double defineMaxPoint(double value, int x0, int y0) const; 00055 00056 //* Transformações 00057 //* Método que retorna o valor sobre o eixo no ponto dado 00058 virtual double valueInPoint(int x0, int y0) const; 00059 //* Método que retorna o valor sobre o eixo no ponto dado 00060 virtual double valueInPoint(double x0, double y0) const; 00061 //* Método que retorna o ponto sobre o eixo no valor dado 00062 virtual void pointInValue(double value, int& x0, int& y0) const; 00063 //* Método que retorna o ponto sobre o eixo no valor dado 00064 virtual void pointInValue(double value, double& x0, double& y0) const; 00065 00066 //* Métodos de Draw 00067 //* Desenha eixo linear 00068 virtual void draw (void); 00069 //* Desenha eixo linear numa região 00070 virtual void draw (int xmin, int ymin, int xmax, int ymax) const; 00071 00072 //* BoundingBox 00073 //* Retorna menor retângulo que contém o eixo, suas coordenadas são dadas em pixel 00074 virtual void boundingBox (int& bxmin, int& bymin, int& bxmax, int& bymax) const; 00075 00076 }; 00077 00078 #endif 00079