UN GRAPHIQUE CAMEMBERT EN 3D

cs_BarbeRousse38 Messages postés 21 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 21 février 2007 - 20 mai 2004 à 00:26
crazygogo Messages postés 135 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 17 avril 2009 - 7 août 2008 à 14:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22964-un-graphique-camembert-en-3d

crazygogo Messages postés 135 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 17 avril 2009
7 août 2008 à 14:44
nadifa Messages postés 9 Date d'inscription mardi 17 juillet 2007 Statut Membre Dernière intervention 27 juillet 2007
17 juil. 2007 à 18:07
salut je ss nvl ds ce domaine et j'aimerais bien créer le meme j'ai trés bien compris le code le changement que je ve attribuer c'est pouvoir fusionnée deux partitions et mettre 3 pix entre aux cmt je pourais le faire merci si vous pouvais me faire savoir a quoi va ressembler le code pour avoir ces modifications :)
pgpp Messages postés 58 Date d'inscription dimanche 16 mai 2004 Statut Membre Dernière intervention 2 septembre 2004
18 mai 2007 à 06:15
Encore toi ? ;)
Non, plus de modif, et pour les histogrammes y'a déjà 3 tonnes de scripts qui font ça.

Si je réécris ce script, ce sera tellement beau que j'aurai envie de le garder pour moi (bouuh l'égoïste !!) :D
jackie0000 Messages postés 22 Date d'inscription dimanche 24 juillet 2005 Statut Membre Dernière intervention 3 août 2009
22 mars 2007 à 11:48
y aura t il une modif sur l code pour avour graph tels que histogrammes
skaterboss2000 Messages postés 29 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 12 juin 2006
15 févr. 2006 à 12:02
ok, c'est cool :)
pgpp Messages postés 58 Date d'inscription dimanche 16 mai 2004 Statut Membre Dernière intervention 2 septembre 2004
14 févr. 2006 à 11:37
Effectivement, comme je l'ai dit, je n'ai pas testé ce code, et effectivement, il ne marche pas. Je n'ai malheureusement pas le temps de reprendre cette fonction, et pour tout vous dire, ce script est vraiment nul. Si j'étais vous, je le réécrirai en entier... ;)
Comme beaucoup de sources ici, celle ci tombera dans les oubliettes, car je ne l'actualiserai jamais. A moins que je ne la réécrive. Comme c'est les vacances je vais faire un effort spécial !
skaterboss2000 Messages postés 29 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 12 juin 2006
12 févr. 2006 à 14:19
re-bonjour, j'ai regardé un peu ça, voilà le nouveau code :
for($last=0,$i=0;$i<$nb;$i++)
{
$ll=100;
$coulLignes="#f0f0f0";
$zePourcentage=($freq[$i]/$somme)*100;
$zeFont="Verdana";

$degree=360*($freq[$i]/$somme);
imageLine($im,(imagesx($im)/2)+($rm+($i==0|$dt)*$d1)*cos(($last+$degree/2)/360*2*M_PI),(imagesy($im)/2)+($rn+($i==0|$dt)*$d1)*sin(($last+$degree/2)/360*2*M_PI)*($rn/$rm*1.5),(imagesx($im)/2)+($ll+$rm+($i==0|$dt)*$d1)*cos(($last+$degree/2)/360*2*M_PI),(imagesy($im)/2)+($ll+$rn+($i==0|$dt)*$d1)*sin(($last+$degree/2)/360*2*M_PI)*($rn/$rm*1.5),$coulLignes);

imageString($im,(imagesx($im)/2)+($ll+10+$rm+($i==0|$dt)*$d1)*cos(($last+$degree/2)/360*2*M_PI),(imagesy($im)/2)+($ll+10+$rn+($i==0|$dt)*$d1)*sin(($last+$degree/2)/360*2*M_PI)*($rn/$rm*1.5),0,$zePourcentage." %",$zeFont);

$last+=$degree;
}

là, il n'y a plus d'erreur mais rien ne s'affiche...
skaterboss2000 Messages postés 29 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 12 juin 2006
12 févr. 2006 à 12:08
bonjour,
votre script est très intéressant, seulement ceci :
for($last=0,$i=0;$i<$nb;$i++)
{
$ll=100;
$coulLignes="#f0f0f0";
$zePourcentage=($freq[$i]/$somme)*100;
$zeFont="Verdana";

$degree=360*($freq[$i]/$somme);
imageLine($im,(imagesx($im)/2)+($rm+($i==0|$dt)*$d1)*cos(($last+$degree/2)/360*2*M_PI),(imagesy($im)/2)+($rn+($i==0|$dt)*$d1)*sin(($last+$degree/2)/360*2*M_PI)*($rn/$rm*1.5),(imagesx($im)/2)+($ll+$rm+($i==0|$dt)*$d1)*cos(($last+$degree/2)/360*2*M_PI),(imagesy($im)/2)+($ll+$rn+($i==0|$dt)*$d1)*sin(($last+$degree/2)/360*2*M_PI)*($rn/$rm*1.5),$coulLignes);

imageString($im,$zeFont,(imagesx($im)/2)+($ll+10+$rm+($i==0|$dt)*$d1)*cos(($last+$degree/2)/360*2*M_PI),(imagesy($im)/2)+($ll+10+$rn+($i==0|$dt)*$d1)*sin(($last+$degree/2)/360*2*M_PI)*($rn/$rm*1.5),$zePourcentage." %");

$last+=$degree;
}

me renvoie ces 2 erreurs :

Warning: Wrong parameter count for imagestring() in c:\program files\easyphp1-7\www\ctadmin\camembert.php on line 42

Warning: Wrong parameter count for imagestring() in c:\program files\easyphp1-7\www\ctadmin\camembert.php on line 42

avez-vous une idée ? merci beaucoup...
axelay1 Messages postés 1 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 24 juin 2005
24 juin 2005 à 21:21
super source j'ai eu un peu de mal à l'adapter mais le résultat est super ! je peux faire des stats dans tous les sens maintenant ;))
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
15 juin 2005 à 13:30
Salut,
il a l'aire super mais comment faire pour avoir la couleur de chaque quar ??
je parle de couleur #000000 par ex.
@+
pgpp Messages postés 58 Date d'inscription dimanche 16 mai 2004 Statut Membre Dernière intervention 2 septembre 2004
17 avril 2005 à 20:33
Tout est dans doubleColorSet() !!!
Allez, réfléchissez un peu !
cs_Terrance Messages postés 2 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 11 avril 2005
11 avril 2005 à 18:09
Super comme script, bravo ;)

Par contre ce serai bien de detailler comment cela se passe pour les couleurs car je voit pas ... pourtant j'ai bien essayé de modifier des trucs ....

Merci ;)
p3x Messages postés 214 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 9 janvier 2019
9 avril 2005 à 20:22
heu voila...
tout dabord bravo, car ce script mérite un bravo =)
pi apres jaimeré savoir kelke chose en tant ke débutant :
jai 3 partis a mon camembert seuleument, je ne sais pas comment modifier la couleur.
Je voudré simplement une parti verte, une parti rouge, et une parti orange.

Si vous pouvez me venir en aide merci bcp =)
pgpp Messages postés 58 Date d'inscription dimanche 16 mai 2004 Statut Membre Dernière intervention 2 septembre 2004
17 déc. 2004 à 16:46
Merci !

Euh...

for($last=0,$i=0;$i<$nb;$i++)
{
$degree=360*($freq[$i]/$somme);
imageLine($im,(imagesx($im)/2)+($rm+($i==0|$dt)*$d1)*cos(($last+$degree/2)/360*2*M_PI),(imagesy($im)/2)+($rn+($i==0|$dt)*$d1)*sin(($last+$degree/2)/360*2*M_PI)*($rn/$rm*1.5),(imagesx($im)/2)+($ll+$rm+($i==0|$dt)*$d1)*cos(($last+$degree/2)/360*2*M_PI),(imagesy($im)/2)+($ll+$rn+($i==0|$dt)*$d1)*sin(($last+$degree/2)/360*2*M_PI)*($rn/$rm*1.5),$coulLignes)

imageString($im,$zeFont,(imagesx($im)/2)+($ll+10+$rm+($i==0|$dt)*$d1)*cos(($last+$degree/2)/360*2*M_PI),(imagesy($im)/2)+($ll+10+$rn+($i==0|$dt)*$d1)*sin(($last+$degree/2)/360*2*M_PI)*($rn/$rm*1.5),$zePourcentage);

$last+=$degree;
}

à insérer après imageCopy(...) et avant imageColorMod(...)

avec $ll la longueur des lignes et $coulLignes la couleur des lignes !!!

et $zePourcentage contient "n %" avec la police $zeFont
avec n en fonction de $freq[$i]

Je ne l'ai pas testé ;)
dionysos6868 Messages postés 310 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 9 juin 2005 1
6 déc. 2004 à 09:27
Salut

super boulot

j'aurais néantmoin une question

Comment peut on faire pour rajouter un trais centré au bout de chaque partie du camenbre et il mettre le pourcentage

exemple : http://developpeur.journaldunet.com/exemples/php_jpgraph/distripref.gif

Merci
cs_secteur Messages postés 1 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 23 novembre 2004
23 nov. 2004 à 09:44
Juste au cas ou quelqu'un cherche ca, pour changer l'origine du camembert c'est la valeur de $last dans:

for($last=0,$i=0;$i<$nb;$i++) { ...

$last=0 correspond a debuter sur la ligne horizontale a droite.
$last=-90 fait debuter le camembert a la verticale (plus joli surtout quand on a juste 2 valeurs dans $freq)


En tout cas superbe code!
jmeunier Messages postés 86 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 17 mai 2013
27 juil. 2004 à 12:14
j'ai trouvé ...
en fait il faut évidement rajouté la valeur $mod à chaque $r_v_b["red"] , $r_v_b["green"] , $r_v_b["blue"] et tester les débordements.

j'suis bien content.
jmeunier Messages postés 86 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 17 mai 2013
25 juil. 2004 à 13:04
pour récupérer les couleurs de secteur, j'ai rajouté après la ligne :
$col=$pal[(192/($nb+1))*$i];

ce petit code :

$r_v_b = ImageColorsForIndex($im,$col);
$coul = $coul . $r_v_b["red"] . "," . $r_v_b["green"] . "," . $r_v_b["blue"] . ";";

mais j'ai l'impression de récupérer les couleurs de la hauteur 3D ...

Où ça cloche ?
merci
atrickofthetail Messages postés 18 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 18 novembre 2004
11 juin 2004 à 14:29
J'ai mis dix/dix ... Je crois qu'un seul commentaire s'impose vu la qualité du script : pourquoi l'avoir appellé "camembert" ? C'est complètement inexportable ;) !!
pgpp Messages postés 58 Date d'inscription dimanche 16 mai 2004 Statut Membre Dernière intervention 2 septembre 2004
3 juin 2004 à 14:06
$white est la couleur du fond
DoubleColorSet() génère 192 couleurs. Modifie cette fonction pour changer les couleurs.
Sache que les couleurs sont utilisées comme suit :
Avec 11 couleurs et 5 parts de campmbert on à :

part: 1 2 3 4 5
coul: 1 2 3 4 5 6 7 8 9 10 11

La part 1 aura la coul. 2, la 2 aura 4, la 3 : 6, la 4 : 8 et la 5 : 10
Cf. la formule :
$col=$pal[(192/($nb+1))*$i];
Gilsdu69 Messages postés 3 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 29 mai 2004
29 mai 2004 à 13:57
Quelle est la variable de la couleur du graphique ??
Merci sinon 10/10 !!
cs_PanterA Messages postés 1 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 25 mai 2004
25 mai 2004 à 11:35
Très bon script !! Par contre pour le texte tu t'es bien fais chier, pourquoi ne pas avoir utilisé imagestring() ?
eax Messages postés 728 Date d'inscription jeudi 20 juin 2002 Statut Membre Dernière intervention 7 novembre 2007 2
23 mai 2004 à 22:07
niquel
thepopolinux Messages postés 245 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 21 juin 2004
21 mai 2004 à 21:57
superbe source :)
10/10
cs_BarbeRousse38 Messages postés 21 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 21 février 2007
21 mai 2004 à 14:04
oui c'est ça que je voudrais faire
cs_badoux Messages postés 137 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 16 décembre 2008
21 mai 2004 à 11:23
ça ne vien pas de la ton histoire !????

http://hosting.infomaniak.ch/banner/sfgihRstF1F5ecOA71vg

C'est infomaniak le plus grand hébergeur de suisse situé à Genève !
cs_BarbeRousse38 Messages postés 21 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 21 février 2007
21 mai 2004 à 01:38
voilà un exemple du résultat : http://alainreversat.webheberg.com/BarbeRousse/test/images_gd/test3D.php

Ce que j'essaye de faire c'est une légende au bas du camember (avec les couleurs et une description de ce que la couleur représente), et essayer d'écrire les valeurs respective sur chaque bords de chaque part du camember
cs_BarbeRousse38 Messages postés 21 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 21 février 2007
21 mai 2004 à 01:33
voilà un exemple du résultat : http://alainreversat.webheberg.com/BarbeRousse/test/images_gd/test3D.php

Ce que j'essaye de faire c'est une légende au bas du camember, et essayer d'écrire les valeurs respective sur chaque bords de chaque part du camember
cs_badoux Messages postés 137 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 16 décembre 2008
20 mai 2004 à 23:24
C'est bête mais tu as repondu à ma question avec ta deuzième phrase; merci beaucoup je dois être fatiguer je vais essayer est on verra se que ca donne !

Mais j'ai encors une question :

Les valeurs des différentes tranches du graphique corresponde à quoi ?

Cet pas très claire pardon !
pgpp Messages postés 58 Date d'inscription dimanche 16 mai 2004 Statut Membre Dernière intervention 2 septembre 2004
20 mai 2004 à 23:17
Je ne comprends pas ta question.
tmp1.png doit contenir l'image de ton camambert généré avec la fonction.

maintenant, si tu veux retavailler l'image, (pour répondre a BarbeRousse38), tu remplaces drawPNG($im) par return($im);
Ainsi la fonction s'utilisera comme suit :

$im=camembert(...)

Puis tu retouches $im comme tu veux, avec les fonctions GD.
cs_badoux Messages postés 137 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 16 décembre 2008
20 mai 2004 à 22:17
Bonjour, je veux bien vous crois sur la qualiter du script mais le fichier tmp1.png dois recembler a quoi ? desolé je debut mais je me renseigne !

Merci à bientôt
pgpp Messages postés 58 Date d'inscription dimanche 16 mai 2004 Statut Membre Dernière intervention 2 septembre 2004
20 mai 2004 à 22:09
Bonne question.... tu rajoutes un bout de code dans la fonction ! Ou tu crées le camembert, puis,ensuite, tu affiche ton texte par dessus.
Rien ne t'empèche de retravailler ton image après avoir fait ton camembert !
cs_BarbeRousse38 Messages postés 21 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 21 février 2007
20 mai 2004 à 00:31
Juste un détail, comment fait-on si ont veut écrire sur une part du camembert?
cs_BarbeRousse38 Messages postés 21 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 21 février 2007
20 mai 2004 à 00:26
Franchement bravo, c'est complet & simple, des scripts comme je les aimes :)

10/10
Rejoignez-nous