| 
Vendre, Acheter, Echanger
 | 
 
| 
 | 
 
 
 | 
 
  
  | 
  | 
Dessiner un camembert avec PHP  
 
Exemple
 
code PHP
  pour télécharger, cliquez ici
Code associé
       
<?php
  // ------------------------------------------------------------------------- // // Créer des stats visuelles sous forme de "camembert"                       // // ------------------------------------------------------------------------- // // Auteur: Fabrice Potec <fpotec@nerim.fr>                                   // // Web:    http://www.djfab.net/                                             // // ------------------------------------------------------------------------- //
  /* fonction qui crée un camembert (stats visuelles) suivant des valeurs entrantes. Cette fonction est une adaptation d'une fonction trouvée dans un bouquin à ma  sauce. */
  // ================================================== // // La librairie graphique php3_gd doit être installée. // Sous windows ajoutez au début : dl("php3_gd.dll"); // ================================================== //
  // dl("php3_gd.dll"); // uniquement sous windows (laissez en commentaire sinon)
  /*   Cette fonction permet de dessiner une portion de camembert */
  function Portion($xc,$yc,$diametre,$epaisseur,$dep,$couleur,$image,$caption) {  /* Définition de la couleur du fond (R,V,B) */   $bgcolor = imagecolorallocate($image, 0, 0, 0);
   for( $i=$diametre ; $i>=0 ; $i-- )     {      imagearc($image,$xc,$yc,$i,$i,$dep,$dep+$epaisseur,$couleur);     }       $alpha = ($dep + ($epaisseur/2)) * ((2*M_PI)/360);
   $cs    = 95 * cos($alpha);  $sn    = 95 * sin($alpha);  $xt    = $xc + $cs;  $yt    = $yc + $sn;
   imagestring($image, 2, $xt, $yt, $caption, $bgcolor); }
 
  /*   Cette fonction construit le camembert à partir du tableau des valeurs ($tb) */
  function Camembert($tabval) {  $img           = imagecreate(230,200);
   /* Définition de la couleur de la police (R,V,B) */  $fontcolor     = imagecolorallocate($img, 255, 255, 255);
   imagefill($img, 0, 0, $fontcolor);
   $total = 0;  for( $i=0 ; $i<sizeof($tabval) ; $i++ )     {      $total = $total + $tabval[$i];          }  $unite = 360/$total;  $begin = 190;
   for( $i=0 ; $i<sizeof($tabval) ; $i++ )     {      /*        Définition des couleurs des portions (ici 5 couleurs sont définies).        Veillez à définir autant de couleurs que de valeurs entrantes dans "$tb".      */       if( $i == 0 )          { $col1 = "255";  $col2 = "0"; $col3 = "0"; }  # rouge  (1e portion)      if( $i == 1 )          { $col1 = "0"; $col2 = "0"; $col3 = "255";  }  # bleu   (2e portion)      if( $i == 2 )          { $col1 = "255"; $col2 = "255"; $col3 = "0"; } # jaune  (3e portion)      if( $i == 3 )          { $col1 = "0";  $col2 = "255"; $col3 = "0"; }  # vert   (4e portion)      if( $i == 4 )          { $col1 = "255"; $col2 = "0"; $col3 = "255"; } # violet (5e portion)      if( $i >= 5 )          { $col1 = "0"; $col2 = "0"; $col3 = "0"; }     # noir   (au dela)            $coul      = imagecolorallocate($img,$col1,$col2,$col3);      $part  = $tabval[$i]*$unite;      portion(110, 100, 120, $part, $begin, $coul, $img, number_format($tabval[$i],1)." %");      $begin = $begin + $part;        }        $Camembert = imageJpeg($img); }
  /* Le total des valeurs entrantes doit être égal à 100 pour ne pas fausser    les stats */ $tb = array(5.3,14.9,19.2,40.1,20.5);
  /* Appel de la fonction */ Camembert($tb);
  ?> 
 | 
 
 
 | 
  | 
  |