www.philatelistes.net - Dessiner un camembert avec PHP
Philatélix : Logiciels pour la philatélie et la numismatique
PHILATELIX Timbres de France est le numéro un des logiciels philatéliques en France. Pour tous les amoureux des timbres, novices et confirmés. Multicollections, avec de très nombreux outils de recherche, une gestion poussée de la mancoliste et de la dispoliste, il décrit 6 600 timbres et près de 16 000 variétés avec 60 000 cotes, contient plus de 9 000 clichés en haute-résolution, un inventaire détaillé de la collection et son évaluation financière. Sans oublier la triple numérotation, le procédé des imagettes, les multiples exports, ...

www.philatelistes.net

Rechercher Membres Contacts Aide
Modération off     Accueil | Actualité | Annonces | Forum | Philamômes | Histoire postale | Merson | Liens

Actualité
Actualité

Evénements

Revue de presse
Le forum
Les sondages

Vendre, Acheter, Echanger
Les adresses
Ventes sur offres ou à prix nets
Petites annonces

Dessiner un camembert avec PHP


Introduction
Astuces PHP et MySQL
Les images
Caractères ASCII
Couleurs du Web
Le e-mail
Aspects légaux
Javascript

Exemple

camembert

code PHP

pour télécharger, cliquez ici 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($image000);

 for( 
$i=$diametre $i>=$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($image2$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($img255255255);

 
imagefill($img00$fontcolor);

 
$total 0;
 for( 
$i=$i<sizeof($tabval) ; $i++ )
    {
     
$total $total $tabval[$i];     
    }
 
$unite 360/$total;
 
$begin 190;

 for( 
$i=$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 == )
         { 
$col1 "255";  $col2 "0"$col3 "0"; }  # rouge  (1e portion)
     
if( $i == )
         { 
$col1 "0"$col2 "0"$col3 "255";  }  # bleu   (2e portion)
     
if( $i == )
         { 
$col1 "255"$col2 "255"$col3 "0"; } # jaune  (3e portion)
     
if( $i == )
         { 
$col1 "0";  $col2 "255"$col3 "0"; }  # vert   (4e portion)
     
if( $i == )
         { 
$col1 "255"$col2 "0"$col3 "255"; } # violet (5e portion)
     
if( $i >= )
         { 
$col1 "0"$col2 "0"$col3 "0"; }     # noir   (au dela)
     
     
$coul      imagecolorallocate($img,$col1,$col2,$col3);
     
$part  $tabval[$i]*$unite;
     
portion(110100120$part$begin$coul$imgnumber_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);

?> 


Imprimer cette page  | Recommander cette page à un ami


Toussaint COPPOLANI
Toussaint COPPOLANI

Copyright © 2000 www.philatelistes.net
Credits, Critiques