begin process at 2012 02 12 19:44:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > DIAGRAMME CAMENBERT

DIAGRAMME CAMENBERT


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :13 870 / 1 494

Auteur : dionysos6868

Ecrire un message privé
Site perso
Commentaire sur cette source (45)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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 .

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

27 janvier 2005 16:49:09 :
31 janvier 2005 13:37:52 :
01 février 2005 07:47:18 :
Ajout d'expliquation final

 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

Commentaires et avis

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.

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 ++

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 !!!

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

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...

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 :)

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 ;)

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 ...
++ !

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 ;)

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.
++ !

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 !!!!

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!!

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

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 ;)

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 ?? :(

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

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 ?

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 ?

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. :)

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. :)

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 !!!

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.

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

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!

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
@+++

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

@+

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… :-\

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...

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+

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

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

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....

Commentaire de marciv le 24/10/2005 16:57:30

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

Commentaire de zizou33 le 10/11/2005 15:04:56

il n'y a aucun affichage

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 !!!

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...

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 ?

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.

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

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)

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

Commentaire de Piezo le 26/01/2008 11:42:40 10/10

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

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

Commentaire de Mrreivax le 01/07/2008 16:39:39 10/10

Exactement ce que je cherchais! 10/10

Commentaire de agranger36 le 02/03/2009 12:18:26 9/10

Je ne vois pas vraiment comment appliquer une bd à cet source?
Si quelqu'un pouvait m'aider!

Sinon très beau code.9/10

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales