Firewall-Masquerade avec interface http

crabs_firewall-3.0.1 ©2005-2011 - Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)

libgraph.a~~ / LIB / GRAPH / graph_creer.cpp
Makefile graph.h serie.cpp timestamp.cpp graph.cpp graph_creer.cpp graph_util.cpp graph_titre_axe.cpp
    1 /*
    2 **=============================================================================
    3 ** crabs_firewall-3.0.1 : Firewall-Masquerade avec interface http
    4 ** Copyright (C) 2005-2011 : Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)
    5 **
    6 ** Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer
    7 ** et/ou le modifier en respectant les termes de la GNU General Public License
    8 ** version 2 ou (suite a votre propre choix) une version ulterieure.
    9 **
   10 ** Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais
   11 ** sans aucune garantie, meme si il est associe a un produit qui vous en
   12 ** propose une. Conformez-vous a la GNU General Public License pour avoir
   13 ** plus de precisions.
   14 **
   15 ** L'auteur ne peut etre tenu responsable de l'utilisation faite des
   16 ** composantes associees a ce projet (en partie ou dans leur totalite).
   17 **
   18 ** Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC
   19 ** de ce projet sous le nom gnu_gpl.txt
   20 **
   21 **=============================================================================
   22 */
   23 #include "graph.h"
   24 #include <string.h>
   25 
   26 #define VMIN(x,y) (((x)<(y))?(x):(y))
   27 #define VMAX(x,y) (((x)>(y))?(x):(y))
   28 bool CGgraph::creerGraph()
   29     {
   30     gdImagePtr  im      = gdImageCreate( W, H ) ;
   31     if ( !im ) return false ;
   32     blanc   = gdImageColorResolve(im, 255, 255, 255) ;
   33     noir    = gdImageColorResolve(im, 0, 0, 0) ;
   34     caxe    = gdImageColorResolve(im, 192, 192, 192 ) ;
   35 
   36     gdImageRectangle( im, 0, 0, W-1, H-1, noir ) ;
   37     gdImageRectangle( im, 1, 1, W-2, H-2, noir ) ;
   38 
   39     margeG = 2 , margeD=2 , margeH=2 , margeB=3 ;
   40     dessineTitre( im, noir ) ;
   41     dessineLegende( im ) ;
   42     dessineValeurAxe( im ) ;
   43     double dW = (double)W ; double dH = (double)H ;
   44     double margeX = (double)( margeG + margeD ) ;
   45     double margeY = (double)( margeH + margeB ) ;
   46 
   47     gdImageLine( im, margeG-3, margeH, W-margeD+3, margeH, noir ) ;
   48     gdImageLine( im, margeG-3, H-margeB, W-margeD+3, H-margeB, noir ) ;
   49     gdImageLine( im, margeG, margeH-3, margeG, H-margeB+4, noir ) ;
   50     gdImageLine( im, W-margeD, margeH-3, W-margeD, H-margeB+4, noir ) ;
   51 
   52     char xnom[128] ; axeX->getNom( xnom ) ;
   53     double dxmin, dxmax, dymin, dymax ;
   54     axeX->getMinMax( dxmin, dxmax ) ;
   55     double AX = (dW-margeX) / ( dxmax - dxmin ) ;
   56     double BX = margeG ; double DX = dxmin ;
   57 
   58     for( int i=0; i<NbCourbe; i++ )
   59         {
   60         if ( !crb[i].valeur ) continue ;
   61 
   62         char ynom[128] ; crb[i].valeur->getNom( ynom ) ;
   63         int couleur = gdImageColorResolve(im,crb[i].R,crb[i].G,crb[i].B) ;
   64         CGserie* Y = axeY[crb[i].axeY] ; Y->getMinMax( dymin, dymax ) ;
   65 
   66         double AY = (dH-margeY) / ( dymin - dymax ) ;
   67         double BY = margeH ; double DY = dymax ;
   68 
   69         Y = crb[i].valeur ; int nb = Y->getNb() ;
   70         double xo, yo, vx, vy ; bool prec = false ;
   71         for( int p=0; p<nb; p++ )
   72             {
   73             vx = axeX->getValeur(p) ;
   74             if ( vx < dxmin ) { prec=false; continue ; }
   75             if ( vx > dxmax ) { prec=false; continue ; }
   76 
   77             vy = Y->getValeur(p) ;
   78             if ( vy < dymin ) vy = dymin ;
   79             if ( vy > dymax ) vy = dymax ;
   80 
   81             double xg = AX * ( vx - DX ) + BX ;
   82             double yg = AY * ( vy - DY ) + BY ;
   83             if ( prec )
   84                 gdImageLine(im,(int)xo,(int)yo,int(xg),(int)yg,couleur);
   85             xo = xg; yo = yg ; prec = true ;
   86             }
   87         }
   88     FILE* out ;
   89     if ( *fichier )
   90         out = fopen( fichier, "wb" ) ;
   91     else
   92         out = stdout ;
   93     if ( out )
   94         {
   95         gdImagePng( im, out ) ;
   96         fclose( out ) ;
   97         }
   98     gdImageDestroy(im);
   99     return (out)?true:false ;
  100     }
  101 
  102 void CGgraph::zoneCourbe( int&x0,int&y0, int&x1,int&y1 )
  103     {
  104     x0 = margeG ;
  105     y0 = margeH ;
  106     x1 = W - margeD ;
  107     y1 = H - margeB ;
  108     }
  109 
  110 
Makefile graph.h serie.cpp timestamp.cpp graph.cpp graph_creer.cpp graph_util.cpp graph_titre_axe.cpp
libgraph.a~~ / LIB / GRAPH / graph_creer.cpp

Haut de page

Contacter crabs

Date de génération : 22/09/2011 21:48