begin process at 2012 05 28 22:01:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

graphe a baton


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

graphe a baton

mercredi 14 juin 2006 à 11:54:51 | graphe a baton

gabs77

bonjour,
je debute dans le graphisme en image PHP
sa m a tout l air d un domaine interessant une fois qu'on sait le maitriser
seulement je ne parviens pas a faire d histogramme qui va du bas vers le haut cad qui a pour origine de base le bas de l image
voici mon script pour le moment

<?php
header ("Content-type: image/png");
$w=500;                   /* largeur de l'image */
$h=250;                   /* hauteur de l'image */
//enregistrer les valeurs
$values=array('janvier'=>120,'fevrier'=>200);   
//compter le nb de valeurs a afficher
$nb_bar =  count($values);

$captions=array_keys($values);//prendre les noms associés aux valeurs du tableau
$values=array_values($values);//prendre les valeurs du tableau
//determinons les valurs minimales et maximales d un array
$value_temp = $values;
asort($value_temp, SORT_NUMERIC);//trie de l array en mode croissant
$minvalue = $value_temp[0];
rsort($value_temp, SORT_NUMERIC);//trie de l array en mode décroissant
$maxvalue = $value_temp[0];

$img=imagecreate($w+10,$h); 
$BleuPale = imagecolorallocate($img, 10, 150, 255);
$bleu = imagecolorallocate($img, 10, 150, 255);
$orange = imagecolorallocate($img, 255, 128, 0);
$bleuclair = imagecolorallocate($img, 156, 227, 254);
$noir = imagecolorallocate($img, 0, 0, 0);
$blanc = imagecolorallocate($img, 255, 255, 255);
//intervalle
$interval = 9;
for($i = 0; $i < $h; $i++)
{imageline($img,0,$i,$w,$i,$noir);
$i=$i+$interval;
}
$prof = 5;// profondeur
//creation des batons
$distance = round($w / $nb_bar - 0.25,1);//largeur d'un baton arrondi par défaut
$ecart = ($maxvalue - $minvalue )/ $h; //echelle du graphe soit 1px = $ecart
for($i = 0; $i < $nb_bar; $i++)
{
$X1 = 10;
$X2 = $X1+$distance;
$Y2 = 20;
$Y1 = floor(10 + ($values[$i] / $h)*100);
$point = array($X1,$Y1,$X2,$Y1,$X2,$Y2,$X1,$Y2);
if($i % 2 ==0){imagefilledpolygon($img,$point,4,$orange);}
  else{imagefilledpolygon($img,$point,4,$bleuclair);}
  imagepolygon($img,$point,4,$noir);

imagestring($img,2,$X1-40+$distance/2,0,$captions[$i].'('.$values[$i].')',$noir);
$X1 = $X2 + 10;
}

   imagepng($img, 'coucou.png');
   imagedestroy($img);
   echo '<img src="coucou.png">';
?>

mercredi 14 juin 2006 à 12:21:27 | Re : graphe a baton

J_G

Salut,

Et si je te dis :"JpGraph" ?
Tu ne te sucides pas hein !

A+

Example-thumb-images

mercredi 14 juin 2006 à 12:40:25 | Re : graphe a baton

gabs77

mdr,
non non tkt je ne me suiciderai pour rien au monde
j avai dej entendu parler de JPgraph, seulement je sais que'on peut le faire par soit meme il est vrai que ce sera moins bien mais c une satisfaction personnelle apres
mais je ve tente de regarder cela de plus pres ke mm tout en cherchant d autre part a faire le graph moi mm
lol
merci ke mm ++
jeudi 15 juin 2006 à 07:26:14 | Re : graphe a baton

malalam

Administrateur CodeS-SourceS
Hello,

j'ai pas envie de mater ton code de bon matin...lol, mais bon, ce n'est pas très compliqué : tu as les coordonnées des grafs que tu traces. Suffit de modifier les bons...quel est ton problème précisément ?
jeudi 15 juin 2006 à 09:19:07 | Re : graphe a baton

gabs77

en fait, j'ai deux problèmes :
- premièrement, lorsque l'on dessine un polygone, on utilise ceci
//avec array de type $point = array(X1,Y1,X2,Y2,X3,Y3,X4,Y4);
$point = array($X1,$Y1,$X2,$Y1,$X2,$Y2,$X1,$Y2);
imagefilledpolygon($img,$point,4,$orange);

les valeurs X sont faciles a donné et 2 valeurs Y sur les 4 sont faciles a données(ils sont en bas de l'image et forme la base), les deux autres doit etre un calcul a faire pour dire à quelle hauteur faut se positionner pour un histogramme classique avec la base en bas (comme celui en dessous) et non pas un histogramme je vais dire inversé avec la base en haut
Example-thumb-images
 et voila ce que g trouver cette nuit qui me semble donné le résultat satisfaisant

$distance = round($w / $nb_bar -0.25,1);//largeur de barre arrondi par défaut
$echelle = ($maxvalue - $minvalue )/ $h; //echelle des barres
for($i = 0; $i < $nb_bar; $i++)
{
$X1 = $distance * $i;
$X2 = $X1 + $distance;
$Y1 = $h;
$Y2 = floor($h - ($values[$i] - $minvalue * $echelle));
$point = array($X1,$Y1,$X2,$Y1,$X2,$Y2,$X1,$Y2);
imagefilledpolygon($img,$point,4,$orange);
}

 - deuxiemement, un probleme avec la couleur d arriere plan de l image
auquel g exposé le pb sur le lien suivant http://www.phpcs.com/infomsg_PB-TRANSPARENCE-IMAGE-PHP_758835.aspx
le fait est que je ne parviens pas a obtenir un arriere plan blanc


Cette discussion est classée dans : img, array, x1, values, imagecolorallocate


Répondre à ce message

Sujets en rapport avec ce message

pb transparence image php [ par gabs77 ] bonjour, je debute en création d image phpet je suis conforonté a un pbje ne parviens pas a faire la transparence de l image avec la fonction imagecol [GD] fusion de 2 images [ par DDelec24 ] Bonsoir :)Je suis en train de réaliser une carte de géo-localisation des membres.J'ai donc créé (ou plutot modifié) une carte de france pour utiliser erreur: imagecolorallocate() .... [ par thunderfear ] bonjour,en fait j'ai tester un script dont voici la source :function imagestringr($img,$x,$y,$size,$string,$texte,$relief,$direction) { $dir = expl Recuperer valeur d'un input image... [ par DjChat ] Bonjour a tous, je suis entrain de crée un formulaire avec des images clickable, j'aurai voulu recuperé le nom de la personne a qui est la photo, donc Requête sur base access à un million de lignes [ par roro59650 ] Bonjour à toutes et tous! Voilà, je suis dans une petite panade... Pour une appli, il faut que je lise une table sur une base Access, qui contient 1 Aide <?PHP include('menu.php');?> [ par mouadneet ] Salut , je suis débutant en PHP et j'ai rencontré se problème Voici le code : [img]http://www6.0zz0.com/2011/07/20/06/417390815.jpg[/img] Voici la fonction pour redimensionner des images de grande taille [ par oceanrider ] Bonjour à tous, Je me tourne vers vous car malgré mes recherches, je ne trouve pas de solution à mon problème. J'ai recours à une fonction pour redi un probleme avec la fonction mysql_fetch_array() [ par soukaouta ] bonjour tt le monde J'obtiens cette erreur lorsque je tente de récupérer une donnée située dans ma base MySQL en local via WAMPServer. Warning: mysql_ PHP Array, impossible de lire le contenu [ par mrassaa ] Salut, Je bosse avec Zend Framework pour pouvoir prendre des données de google spreadsheet (j'y suis obligé, pas de mysql possible). Bref, le problè odbc_fetch_array et erreurs PHP [ par suxxa ] Bonjour à tous et à toutes, Venant de terminer un site, j'ai souhaité l'installer sur un serveur web existant et tournant déjà. C'est ici que le pro


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,640 sec (3)

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