00001 //* Módulo : xyaxlg.h 00002 // _Desc_ : Declara classe XYLogAxis. 00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante. 00004 // _Data_ : 02 mai 96. 00005 00006 #ifndef __XYLOGAXIS_H 00007 #define __XYLOGAXIS_H 00008 00009 #include "xyax.h" 00010 00011 //* XYLogAxis 00012 // Classe especializada que define um eixo 00013 // com escala logaritmica. 00014 class XYLogAxis: public XYAxis 00015 { 00016 public: 00017 00018 //* Construtores e Destrutor 00019 //* Construtor A 00020 XYLogAxis ( 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 XYLogAxis ( 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 XYLogAxis 00047 virtual ~XYLogAxis (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 //* Transforma coordenada em logaritmica 00058 virtual double transform (double e) const; 00059 00060 //* Método que retorna o valor sobre o eixo no ponto dado 00061 virtual double valueInPoint(int x0, int y0) const; 00062 //* Método que retorna o valor sobre o eixo no ponto dado 00063 virtual double valueInPoint(double x0, double y0) const; 00064 //* Método que retorna o ponto sobre o eixo no valor dado 00065 virtual void pointInValue(double value, int& x0, int& y0) const; 00066 //* Método que retorna o ponto sobre o eixo no valor dado 00067 virtual void pointInValue(double value, double& x0, double& y0) const; 00068 00069 //* Métodos de Draw 00070 //* Desenha eixo logarítmico 00071 virtual void draw (void); 00072 //* Desenha eixo logarítmico numa região 00073 virtual void draw (int xmin, int ymin, int xmax, int ymax) const; 00074 00075 //* BoundingBox 00076 //* Retorna menor retângulo que contém o eixo, suas coordenadas são dadas em pixel 00077 virtual void boundingBox (int& bxmin, int& bymin, int& bxmax, int& bymax) const; 00078 00079 }; 00080 00081 #endif 00082