www.philatelistes.net - Dessiner un camembert avec PHP
Les Cérès de Bordeaux
1870-1871 GOUVERNEMENT PROVISOIRE
EMISSION DITE "CERES DE BORDEAUX".
Ce site a été conçu pour être utile au collectionneur. Commencé le 16 février 2011, il mettra quelques années avant d'être complet. Pour le moment le chantier le plus compliqué, celui du 20 centimes est ouvert. Ce site deviendra en premier lieu une aide à l'identification incontournable. Il sera fait par vous, pour vous. N'hésitez pas à participer de la manière que vous pouvez. En attendant, bénéficiez des possibilités suivantes, au fur et à mesure de leur mise en fonction

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