begin process at 2008 08 20 12:41:09
1 228 823 membres
193 nouveaux aujourd'hui
14 257 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DIAGRAMME CAMENBERT


Information sur la source

Catégorie :Graphique Niveau : Débutant Date de création : 27/01/2005 Date de mise à jour : 01/02/2005 07:47:18 Vu / téléchargé: 10 118 / 1 340

Note :
8,93 / 10 - par 27 personnes
8,93 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (44)
Ajouter un commentaire et/ou une note

Description

Bonjour a tous voila j'ai cherché longtemps une possibilité de dessiner
un diagramme style camember pour faire des statistique mais je
n'ai rien trouvé (du moin gratuit ;) ).
Donc voila j'ai développer ce code pour l'affichage d'un diagramme
sous la forme d'une image qui peux ce parametrer ( avec titre
legendre cadre fond ou sans ...etc

je met en dessous différente facon de sans servire d'autre facon
sont consultable sur mon site

http://www.tools-net.com

l'utilisation en est simple on passe des parametre ( titre ,
boolen pour la légendre, boolen pour le fond, boolen pour le
cadre, tableau de donnée ...etc)


Je vous demande votre avis sur les amélioration possible a
y amener .

Merci

Source

  • include_once("Cam.php");
  • // DONNEES
  • // Max = 18
  • $donneeCercle = array ("Japon"=>16,"Tahiti"=>17,"Brésil"=>30,"Chili"=>22,
  • "France"=>15,"Italie"=>52,"Suisse"=>58,"Allemagne"=>20,"Belgique"=>16,
  • "Espagne"=>15,"USA"=>
  • 81,"Chine"=>26,"Russi"=>45,"Pays bas"=>18,"Maroc"=>12,"Cameroun"=>16,"Autriche"=>
  • 12,"Autralie"=>14);
  • $img = new Camembert();
  • $img -> fond(true);
  • $img -> legende(true);
  • $img -> titre("Diagramme camembert pour test du site www.tools-net.com");
  • // function dessineCamambert($donnees,$largeurImage=400,$epaisseurImage=10,
  • $tPolice="")
  • // IMAGE :
  • // Min = 400
  • // Max = 1500
  • $img -> dessineCamambert($donneeCercle,600);
  • ?>
  • <p>Digramme sans fond avec l&eacute;gende :</p>
  • <?
  • $img2 = new Camembert();
  • $img2 -> fond(false);
  • $img2 -> legende(true);
  • $img2 -> titre("Diagramme camembert pour test du site www.tools-net.com");
  • // function dessineCamambert($donnees,$largeurImage=400,$epaisseurImage=10
  • ,$tPolice="")
  • // IMAGE :
  • // Min = 400
  • // Max = 1500
  • $img2 -> dessineCamambert($donneeCercle,600);
  • ?>
   include_once("Cam.php");

// DONNEES
// Max = 18
   $donneeCercle = array ("Japon"=>16,"Tahiti"=>17,"Brésil"=>30,"Chili"=>22,
"France"=>15,"Italie"=>52,"Suisse"=>58,"Allemagne"=>20,"Belgique"=>16,
"Espagne"=>15,"USA"=>
81,"Chine"=>26,"Russi"=>45,"Pays bas"=>18,"Maroc"=>12,"Cameroun"=>16,"Autriche"=>
12,"Autralie"=>14);
   $img = new Camembert();
   $img -> fond(true);
   $img -> legende(true);
   $img -> titre("Diagramme camembert pour test du site www.tools-net.com");
   
// function dessineCamambert($donnees,$largeurImage=400,$epaisseurImage=10,
$tPolice="")
// IMAGE :
// Min = 400
// Max = 1500
   $img -> dessineCamambert($donneeCercle,600);
?>
<p>Digramme sans fond avec l&eacute;gende :</p>

<?  
   $img2 = new Camembert();
   $img2 -> fond(false);
   $img2 -> legende(true);
   $img2 -> titre("Diagramme camembert pour test du site www.tools-net.com");
   
// function dessineCamambert($donnees,$largeurImage=400,$epaisseurImage=10
,$tPolice="")
// IMAGE :
// Min = 400
// Max = 1500
   $img2 -> dessineCamambert($donneeCercle,600);
?>

Conclusion

- il faut copier la font arial.ttf dans le repertoir ou est mit le fichier Cam.php

- Ne pas oublier d'authoriser en ecriture le dossier sur votre serveur .
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

27 janvier 2005 16:49:09 :
31 janvier 2005 13:37:52 :
01 février 2005 07:47:18 :
Ajout d'expliquation final
  • signaler à un administrateur
    Commentaire de malalam le 27/01/2005 16:28:40 administrateur CS

    Je ne vais pas lire en profondeur le code, je pense, mais je l'ai telecharge pour le voir. Puis j'ai regarde tes exemples. J'ai juste un truc a te dire : t'as du te faire chier ;-)
    J'aurais pas eu le courage de me lancer dans un graphique camembert en 3d...! Bravo :-) Et c'est tres joli en plus.

  • signaler à un administrateur
    Commentaire de Anthomicro le 27/01/2005 18:05:14

    Salut ;-)

      include_once("Cam.php");

    tu peux le remplacer par   include_once 'Cam.php';

    <? est à remplacer par <?php

    Ensuite c'est vraiment très beau :-)

    je te mets 7/10

    a ++

  • signaler à un administrateur
    Commentaire de dionysos6868 le 27/01/2005 18:50:19

    malalam : Merci mais ca ne fait pas tant que ca ;)

    Anthomicro ; ce ne sont que des petite modification ;)

    Merci a vous et autre prochain pour leur commentaire constructifs !!!

  • signaler à un administrateur
    Commentaire de Nerdz le 27/01/2005 20:04:42

    Haha 7/10 ... j'comprend pas ! sa vaut bcp plus .. j'ai pas vu le code encore mais juste de trouver toutes les formules et les appliqué afin de faire un camembert .. chapeau ! ;) jte file un bo 10

  • signaler à un administrateur
    Commentaire de Anthomicro le 27/01/2005 20:08:41

    Et bien si tu veux mettre 10 tu mets 10, tu n'as pas à juger la note que j'ai attribuée...

  • signaler à un administrateur
    Commentaire de Naixn le 27/01/2005 20:34:45

    Question :

      function __construct($bFond=false)
      {

      }

    ça sert à quoi ?
    Bon je débute dans les classes, et quand je vois des trucs genres méthodes publiques, méthodes privées et tout, je suis perdu .... Bon là, mon bon sens et mon habitude de la prog avec fonctions me fait penser que ça ne sert à rien, mais commençant à peines les classes, je voudrais m'en assurer, même si je suis quasi persuadé de la réponse :)

  • signaler à un administrateur
    Commentaire de dionysos6868 le 27/01/2005 20:50:00

    Naixn : Oui effectivement dans ce concept cette fonction ne sert strictement a rien elle est pour evolution future ;) .

    Anthomicro & Nerdz : perso la mote je n'en fiche ;) je porte plus d'interet a l'utilisation que vous allez pouvoir en faire ;)

    Merci tout de meme pour cette note 7 ou 10 c'est au dessus de 5 ;)

  • signaler à un administrateur
    Commentaire de LocalStone le 27/01/2005 22:27:00

    J'ai pas matté le code, mais en tout cas, c'est super bien fait. Serieux, bravo. Et je pense que tu pourrais même ajouter une petite méthode à ta classe pour affiner les traits de ton graph (du style graph -> antialiasing($offset); ou un truc comme ça) ... C'est pas grand chose, mais au niveau de l'image, ce sont ces petites choses qui font la différence.
    Et encore une idée ... Si tu est motivé, tu peux même essayer de mettre la part du camembert qui contient la valeur maximale de tes stats au premier plan et l'extruder du cambert. Mais là, par contre, je sais pas du tout comment faire. Autant l'antialiasing je sais faire, mais ça ...
    ++ !

  • signaler à un administrateur
    Commentaire de dionysos6868 le 27/01/2005 22:47:51

    LocalStone : antialiasing connais pas si tu a un exemple je serais heureux de faire la modif car les trait je ne les aime pas trop pour ce qui est de la part je sais comment faire mais je ne trouvais pas ca super ;)

  • signaler à un administrateur
    Commentaire de LocalStone le 27/01/2005 23:13:51

    Bah y a surement un tas de méthode, mais tu peux faire un flou de 3x3 sur ton image avant de mettre les textes. Pour faire un flou, il faut faire une moyenne pondérée des couleurs proches de ton pixel à flouter. Je sais pas si c'est super clair, mais c'est super simple à comprendre. Si tu comprends pas avec la piste, dis-le et je te fais quasiement un script tout simple que tu pourras adapter.
    ++ !

  • signaler à un administrateur
    Commentaire de dionysos6868 le 28/01/2005 07:36:10

    LocalStone : desoler mais ca ne me dir rien du tout mais je voudrais bien le faire si cela peu ameliorer mon graphique si jamais sur avaais deux ou trois piste a me filer je ferais l'amilioration !!!!

  • signaler à un administrateur
    Commentaire de malalam le 28/01/2005 13:48:23 administrateur CS

    -> Diony

    si si, ca fait tres bien lol. En fait je n'ai pas compris ce que tu entends par la ;-) Ce que je voulais dire c'est que je m'etais lance dans la creation d'un graphique dynamique pour afficher des stats (lance, et je l'ai fini hein). Au depart je pensais justement a un camembert. Mais devant les algo que j'ai trouve pour creer un camembert en un language X...j'ai abdique lol. Je n'ai plus fait de maths depuis longtemps...alors je me suis rabattu sur un graphique en barres, tout simplement. Ca marche hein, mais c'est nettement moins joli que ton appetissant camembert!!
    La note est meritee!!

  • signaler à un administrateur
    Commentaire de jcrusot le 29/01/2005 18:16:28

    Super le camembert mais j'ai des erreurs tu type:

    Warning: imagettftext() [function.imagettftext]: Could not find/open font in ....

    Warning: imagettfbbox() [function.imagettfbbox]: Could not find/open font in ....

    Merci pour une solution

  • signaler à un administrateur
    Commentaire de dionysos6868 le 29/01/2005 20:17:31

    Autant pour moi j'ai ommi de dire qu'il fallais copier la font arial.ttf dans le repertoir ou est mit la classe camembert

    desoler ;)

  • signaler à un administrateur
    Commentaire de benoitbva le 31/01/2005 19:36:37

    Ca a l'air vraiment super, seulement ça marche pô chez moi, le php me sort :

    Unable to open 'Cam2.png' for writing in /home/cdm/public_html/Cam.php

    I need some help, please ?? :(

  • signaler à un administrateur
    Commentaire de benoitbva le 31/01/2005 19:46:30

    Euh sorry, chuis trop une quiche, j'avais pas mis les droits de création de fichiers sur le serveur.
    Super code !! Je mets 9

  • signaler à un administrateur
    Commentaire de Aching_Beauty le 15/02/2005 17:42:31

    Excellent code.
    Par contre j'ai une série de warnings dont je n'arrive pas à comprendre la source :

    Notice: Undefined variable: legende in c:\site\include\cam.php on line 65

    et :

    Notice: Undefined offset: -1 in C:\site\include\cam.php on line 141

    le tout répété pas mal de fois, soit pour la variable legende, soit pour le offset....

    Qqun peut m'aider ?

  • signaler à un administrateur
    Commentaire de dionysos6868 le 15/02/2005 18:02:56

    je n'arrive pas a recréer ton erreur.

    Je ne comprend pas d'ou cela peu venir

    As tu bien autoriser en écriture?
    Le test est en local?

    Si oui a tu testé sur un hébergeur internet ?

  • signaler à un administrateur
    Commentaire de LocoDomo le 07/05/2005 19:16:25

    J'ai exactement la même erreur que Aching_Beauty. :(

    Mais sinon, c'est du très beau boulot. Merci. :)

  • signaler à un administrateur
    Commentaire de LocoDomo le 07/05/2005 19:16:29

    J'ai exactement la même erreur que Aching_Beauty. :(

    Mais sinon, c'est du très beau boulot. Merci. :)

  • signaler à un administrateur
    Commentaire de Teclis01 le 16/05/2005 10:37:50

    hum deja l image me plait mais j arrive pas a faire fonctionner le script... noob powerrrrr :Op
    Voici les erreurs générés:
    Notice: Undefined variable: legende in c:\program files\easyphp1-7\www\camenbert\Cam.php on line 65

    Fatal error: Call to undefined function: imagettfbbox() in c:\program files\easyphp1-7\www\camenbert\Cam.php on line 93

    j' utilise easyphp 1.7 et 3 fichiers sont ds un dossier camenbert
    -Cam.php
    -arial.ttf
    -camenbert.php

    HELP !!!

  • signaler à un administrateur
    Commentaire de Teclis01 le 16/05/2005 12:05:11

    bon pour la 2eme erreur cela vient de l'extension php_gd2
    Maintenant ca m affiche 2 fois un graphique sans aucune valeur ni titre et un nombre incalculable d erreur dont toujours la premiere.
    Quelques erreur peuvent etre viré en virant la function qui calcule la 3d mais yen a toujours un sacré paquet et j vais pas les ecrire ici ca serait trop long. Néanmoins ca m interesse toujours reste a voir si tu repondras.

  • signaler à un administrateur
    Commentaire de dionysos6868 le 16/05/2005 13:37:34

    Oui je répond mais perso je n'ai pas erreur noprmal sinon je n'aurais pas mit la source.

    J'ai tester en local avec easyphp 1.7 wamp5 et sur le net serveur free et lycos pro

    Donc tu peux toujours m'envoyer les erreur par mail : pc152@free.Fr

  • signaler à un administrateur
    Commentaire de testest le 18/05/2005 11:44:53

    Bonjour !

    je rencontre exactement les memes problemes que Aching_Beauty , mais les graphiques s'affichent bien.
    Je t'ai envoyé mon affichage "buggé" si tu veux bien y jeter un oeil...
    merci d'avance!

  • signaler à un administrateur
    Commentaire de ImmortalPC le 24/05/2005 20:38:41

    J'ai plein de problèmes avec !!!!
    En local j'ai :
    Fatal error: Call to undefined function: imagettfbbox() in c:\program files\internet\serveurs\easyphp1-7\www\camenbert\Cam.php on line 93

    Et sur free j'ai :
    Warning: imagettftext(): Could not find/open font in /var/www/free.fr/d/8/www.immortalpc/Cam.php on line 341
    alors que tout les fichiers sont dans le meme rep:
    arial.ttf
    Cam.php
    Stats.php

    http://www.immortalpc.free.fr/Stats.php
    @+++

  • signaler à un administrateur
    Commentaire de ImmortalPC le 24/05/2005 20:42:29

    Salut,
    J'ai plein de problèmes:
    En local :
    Fatal error: Call to undefined function: imagettfbbox() in c:\program files\internet\serveurs\easyphp1-7\www\camenbert\Cam.php on line 93

    Sur Free :
    http://www.immortalpc.free.fr/Stats.php

    @+

  • signaler à un administrateur
    Commentaire de Baba Cool le 02/06/2005 16:21:16

    Salut DYONISOS6868
    Ta source est très intéressante, mais j’aimerais avoir quelques précisions…
    J’avais des problémes car je n’avais pas la GD (ce qui est plutôt normal…) mais je l’ai installé avec la version :
    GD Version :  bundled (2.0.28 compatible)
    Mais j’ai des pb avec la fonction imagettfbbox(), il ne la trouve pas… :-(
    C’est dommage j’aimerais vraiment utiliser ta source.
    Est-ce que tu crois que cela vient de la version de GD ?
    Ou sinon, ou pourrais-je trouver cette fonction ?
    Merci d’avance. :-)
    A++
    Baba
    PS :j’espère que tu me répondras… :-\

  • signaler à un administrateur
    Commentaire de Baba Cool le 03/06/2005 08:29:31

    Je crois que j'ai trouvé, ca vient peu être de la librairie truetype.? Je vais la changer...

  • signaler à un administrateur
    Commentaire de loran44 le 09/06/2005 15:44:26

    Salut! pour moi que ce soit en local ou sur mon ftp free j ai toujours la même chose : L'image « http://localhost/essai/essaicamembert » ne peut être affichée, car elle contient des erreurs.

    Je débute un peu alors je ne comprends pas bien d ou vient l erreur...merci de votre aide.
    a+

  • signaler à un administrateur
    Commentaire de tigroubelze le 07/07/2005 10:15:45

    Salut
    Pour ce type d'erreur
    Notice: Undefined offset: -1 in C:\site\include\cam.php on line 141
    cela vient de
    $coordonnee[$i-1]
    quand il commence la boucle à $i=0 ça fait qu'il cherche la valeur $coordonnee[-1], et elle n'existe pas donc erreur.
    Le mieux pour ne pas trop toucher au script c'est de faire un truc du genre
    if ($i>0) $tempcoordonnee=$coordonnee[$i-1]; else $tempcoordonnee=0;
    et on remplace dans le code $coordonnee[$i-1] par $tempcoordonnee
    après l'erreur
    Notice: Undefined variable: legende in c:\program files\easyphp1-7\www\camenbert\Cam.php on line 65
    à la place de
    $this -> $legende = $bLegende;
    il faut mettre
    $this -> legende = $bLegende;
    voila sinon beau graphique,
    je met 8/10

  • signaler à un administrateur
    Commentaire de marciv le 19/10/2005 17:46:55

    TIGROUBELZE ok pour la modif ça corrige mais ..... il n'y a plus de légendes !! alors mieux vaut avoir un warning.
    Serieux quelqu'un ne pourrait t'il pas appurer cette source moi je n'y arrive pas. Merci

  • signaler à un administrateur
    Commentaire de pc152 le 24/10/2005 16:52:57

    Bonjour a tous j'ai essayer cette source et je n'ai aucun pb elle fonctionne tres bien....

  • signaler à un administrateur
    Commentaire de marciv le 24/10/2005 16:57:30

    Normal si tu n'as pas les notices activée sur ton serveur. TCHOU

  • signaler à un administrateur
    Commentaire de zizou33 le 10/11/2005 15:04:56

    il n'y a aucun affichage

  • signaler à un administrateur
    Commentaire de Straasha le 22/11/2005 08:21:30

    Quel script !!!
    Voila 3 semaines qu'il tourne non stop pour analyser une enquête de satisfaction au sein de mon entreprise et ca marche très bien...

    Sauf qu'hier...

    Un bug sur un calcul...

    Avec 3 valeurs : 5 / 3 / 0 j'obtiens 0%,38% et 63% ...
    Idem avec : 5 / 2 / 1 => 25 63 13
    7, 1 => 88 13

    Si quelqu'un pouvait m'aider... merci !!!

  • signaler à un administrateur
    Commentaire de Straasha le 22/11/2005 09:03:03

    Bon j'ai trouvé une solution de contournement.... toute bête hin ;)

    Cette ligne => $pourcent = round(($coordonnee[$i]-$coordonnee[$i-1])*100/360);

    Avec les valeur 5, 2 ,1 donnent

    62.5% arrondi à 63%
    25%
    12.5% arrondi à 13% soit deux arrondi au supérieur !!!!

    Donc j'ai ajouté un dizième dans l'affichage...

    $pourcent = round(($coordonnee[$i]-$coordonnee[$i-1])*100/360,1);

    Si quelqu'un à une solution pour eviter d'arrondir deux fois au supérieur... je suis prenneur...

  • signaler à un administrateur
    Commentaire de AustralisxPiscis le 03/03/2006 16:50:14

    Salut tout le monde,

    Je viens de découvrir cette source dont j'ai besoin pour présenter les résultats d'un vote.  Tout fonctionne parfaitement sauf que je n'ai pas de légende... Quelqu'un a-t-il une solution ?

  • signaler à un administrateur
    Commentaire de AustralisxPiscis le 03/03/2006 16:55:38

    C'est bon, j'viens de trouver la solution. C'est simplement que j'ai eu tort d'être attentif à toutes les remarques postées. En effet, legende à la ligne 65 doit bien rester une variable $legende !

    Vala, à bientôt, et bravo à l'auteur de cette source.

  • signaler à un administrateur
    Commentaire de ohabay le 22/06/2006 11:06:03

    Salut!
    J'ai les deux message d'erreur suivants:
    Notice: Undefined variable: legende in d:\site\call\Cam.php on line 65
    Fatal error: Call to undefined function: imagettfbbox() in d:\site\call\Cam.php on line 93
    Je comprend pas vu mon niveau de débutant.
    Y'a quelqu'un qui peut éclairer ma lanterne?
    Merci

  • signaler à un administrateur
    Commentaire de Gallient le 11/07/2006 11:00:13

    Déjà, y a pleins de bug, ensuite ton code ne commence pas par une balise d'ouverture php (<? ou <?php)

  • signaler à un administrateur
    Commentaire de pc152 le 12/07/2006 16:17:54

    Gallient premierement j'ai changer de pseudo c'est bien moi qui est développé cette source il y a deux ans. Donc je n'appréci pas les remarque non constructives qui son la juste pour faire un post donc le " Déjà, y a pleins de bug" n'a rien a faire la la source je l'ai déveloper a mes début sacahtn que je suis développeur .NET, ensuite le classe fonctionne chez moi et sur d'autre site l'erreur peux venir de pb de configuration du serveur ...

    Deuxiement en visuel il n'y a pas <? mais ce n'ai la que pour montrer un morceau de code.

    Voila la prochaine fois que tu auras envis de titiller ton clavier fait le dans le bloc note.

    Amicalement

  • signaler à un administrateur
    Commentaire de Piezo le 26/01/2008 11:42:40 10/10

    Désolé il n'y a pas de plus étoiles

  • signaler à un administrateur
    Commentaire de Piezo le 26/01/2008 11:44:33

    Je voulais dire :
    désolé il n'y a plus de dix étoiles.
    Ce code montre que toutest possible en php

  • signaler à un administrateur
    Commentaire de Mrreivax le 01/07/2008 16:39:39 10/10

    Exactement ce que je cherchais! 10/10

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS