Tu vois que ça ne cadre pas parce que tu es dans le bain.
Chaque courbe prise toute seule ça donne quoi ?
Tu vois que ça ne cadre pas parce que tu es dans le bain.
Chaque courbe prise toute seule ça donne quoi ?
Pour la deuxieme courbe :
Pièce jointe 271810
Sinon pour la première, c'est exactement la même sans la courbe bleue évidemment.
On dirait qu'il ne prend en compte que le min et max de la premiere courbe.
Peux tu faire un export de la structure de ta table ainsi que des données sous forme de fichier SQL ?
Comme ça je pourrai tester avec de vraies données.
Voila :
Pièce jointe 271825
Merci pour ton aide
C'est déjà mieux. Non ?
:mrgreen:
Pièce jointe 271890
oh parfait ! :D Comment as-tu fait ?
Voici le code. Le problème venait du fait que les limites hautes et basses étaient mal calculées. Il fallait les calculer à partir des valeurs mini et maxi de qtvendu et qtilot.
Ta table ne contient pas l'année donc tu ne peux pas avoir d'enregistrements sur plusieurs années sans quoi ça ne marchera plus.
Je vais continuer pour simplifier le code car comme c'est ça fonctionne mais c'est une rustine sur une jambe de bois.
En attendant.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219 <?php function deuxieme_image(&$courbeilot,$iilot,$resultatilot,$minilot,$maxilot,$moisFr) { //Préparation de l'image //Chemin vers le police à utiliser $font_file = './fonts/comic.ttf'; // badaze $font_file = 'ARIAL.TTF'; //Adapter la largeur de l'image avec le nombre de données $largeurilot=$iilot*50+90; $hauteurilot=350; //Hauteur de l'abscisse par rapport au bas de l'image $absisilot=80; //Allouer les couleurs à utiliser $bleuilot=imagecolorallocate($courbeilot, 0, 0, 255); $ligneilot=imagecolorallocate($courbeilot, 220, 220, 220); $fondilot=imagecolorallocate($courbeilot, 239, 239, 239); $noirilot=imagecolorallocate($courbeilot, 0, 0, 0); $rougeilot=imagecolorallocate($courbeilot, 255, 0, 0); //Tracer l'axe des abscisses imageline($courbeilot, 50, $hauteurilot-$absisilot, $largeurilot-10,$hauteurilot-$absisilot, $noirilot); //Tracer l'axe des ordonnées imageline($courbeilot, 50, $hauteurilot-$absisilot,50,20, $noirilot); //Decaler 10px vers le haut l'axe si le minimum est différent de 0 if($minilot!=0) { $absisilot+=10; $ailot=10; } //Nombres des grid verticals $nbOrdonneilot=10; //Calcul de l'echelle des abscisses $echelleXilot=($largeurilot-100)/$iilot; //Calcul de l'echelle des ordonnees $echelleYilot=($hauteurilot-$absisilot-20)/$nbOrdonneilot; $iilot=$minilot; //Calcul des ordonnees des grid $pyilot=($maxilot-$minilot)/$nbOrdonneilot; $pasYilot=$absisilot; while($pasYilot<($hauteurilot-19)) { //Affiche la valeur de l'ordonnee //imagestring($courbeilot, 2,10 , $hauteurilot-$pasYilot-6, round($iilot), $noirilot); //Decaller vers le haut pour la prochaine grid $pasYilot+=$echelleYilot; //Valeur de l'ordonnee suivante $iilot+=$pyilot; } //Tracage du diagramme $jilot=-1; //Position de la première mois de vente $pasXilot=90; //Parcourir le tableau pour le traçage de la diagramme foreach ($resultatilot as $mois => $quantiteilot) { //calculer la hauteur du point par rapport à sa valeur $yilot=($hauteurilot) -(($quantiteilot -$minilot) * ($echelleYilot/$pyilot))-$absisilot; //dessiner le point imagefilledellipse($courbeilot, $pasXilot, $yilot, 6, 6, $bleuilot); //Afficher le mois en français avec une inclinaison de 315° //imagefttext($courbeilot, 10, 315, $pasXilot, $hauteurilot-$absisilot+20, $noirilot, $font_file, $moisFr[$mois-1]); //Tacer une ligne verticale de l'axe des abscisses vers le point //imageline($courbeilot, $pasXilot, $hauteurilot-$absisilot+$ailot, $pasXilot,$yilot, $noirilot); if($jilot!==-1) { //liée le point actuel avec la précédente imageline($courbeilot,($pasXilot-$echelleXilot),$yprevilot,$pasXilot,$yilot,$noirilot); } //Afficher la valeur au dessus du point //imagestring($courbeilot, 2, $pasXilot-15,$yilot-14 , $quantiteilot, $bleuilot); $jilot=$quantiteilot; //enregister la hauteur du point actuel pour la liaison avec la suivante $yprevilot=$yilot; //Decaller l'abscisse suivante par rapport à son echelle $pasXilot+=$echelleXilot; } } //========================================================================================== try { $bdd = new PDO('mysql:host=localhost;dbname=mybdd', 'root', 'mdp'); //badaze $bdd = new PDO('mysql:host=127.0.0.1;dbname=tests', 'root', ''); $bdd->exec("SET CHARACTER SET utf8"); } catch (Exception $e) { die('Erreur : ' .$e->getMessage()); } // Recherche du mini et du maxi. Attention ta table ne contient pas d'année $requeteMinMax = "SELECT min(`qtvendu`) as minv,min(`qtilot`) as mini,max(`qtvendu`) as maxv,max(`qtilot`) as maxi, count(*) as compte FROM graphique "; $queryMinMax = $bdd->query($requeteMinMax); list($minv,$mini,$maxv,$maxi,$i) = $queryMinMax->fetch(); $min = min($minv,$mini); $max = max($maxv,$maxi); $requete = "SELECT `mois`, `qtvendu` FROM graphique GROUP BY mois ORDER BY mois ASC"; $query = $bdd->query($requete); //Preparation des données : $moisFr=array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'); $resultat=array(); while($row=$query->fetch(PDO::FETCH_OBJ)) { //Mettre la ligne dans le tableau $resultat[$row->mois]=$row->qtvendu; } //Préparation de l'image //Type mime de l'image header('Content-type: image/png'); //Chemin vers le police à utiliser $font_file = './fonts/comic.ttf'; //badaze $font_file = 'ARIAL.TTF'; //Adapter la largeur de l'image avec le nombre de données $largeur=$i*50+90; $hauteur=350; //Hauteur de l'abscisse par rapport au bas de l'image $absis=80; //Création de l'image $courbe=imagecreatetruecolor($largeur, $hauteur); //Allouer les couleurs à utiliser $bleu=imagecolorallocate($courbe, 0, 0, 255); $ligne=imagecolorallocate($courbe, 220, 220, 220); $fond=imagecolorallocate($courbe, 239, 239, 239); $noir=imagecolorallocate($courbe, 0, 0, 0); $rouge=imagecolorallocate($courbe, 255, 0, 0); //Colorier le fond imagefilledrectangle($courbe,0 , 0, $largeur, $hauteur, $fond); //Tracer l'axe des abscisses imageline($courbe, 50, $hauteur-$absis, $largeur-10,$hauteur-$absis, $noir); //Tracer l'axe des ordonnées imageline($courbe, 50,$hauteur-$absis,50,20, $noir); //Decaler 10px vers le haut l'axe si le minimum est différent de 0 if($min!=0) { $absis+=10; $a=10; } //Nombres des grid verticals $nbOrdonne=10; //Calcul de l'echelle des abscisses $echelleX=($largeur-100)/$i; //Calcul de l'echelle des ordonnees $echelleY=($hauteur-$absis-20)/$nbOrdonne; $i=$min; //Calcul des ordonnees des grid $py=($max-$min)/$nbOrdonne; $pasY=$absis; while($pasY<($hauteur-19)) { //Affiche la valeur de l'ordonnee imagestring($courbe, 2,10 , $hauteur-$pasY-6, round($i), $noir); //Trace la gride imageline($courbe, 50, $hauteur-$pasY, $largeur-20,$hauteur-$pasY, $ligne); //Decaller vers le haut pour la prochaine grid $pasY+=$echelleY; //Valeur de l'ordonnee suivante $i+=$py; } //Tracage du diagramme $j=-1; //Position de la première mois de vente $pasX=90; //Parcourir le tableau pour le traçage de la diagramme foreach ($resultat as $mois => $quantite) { //calculer la hauteur du point par rapport à sa valeur $y=($hauteur) -(($quantite -$min) * ($echelleY/$py))-$absis; //dessiner le point imagefilledellipse($courbe, $pasX, $y, 6, 6, $rouge); //Afficher le mois en français avec une inclinaison de 315° imagefttext($courbe, 10, 315, $pasX, $hauteur-$absis+20, $noir, $font_file, $moisFr[$mois-1]); //Tacer une ligne verticale de l'axe des abscisses vers le point imageline($courbe, $pasX, $hauteur-$absis+$a, $pasX,$y, $ligne); if($j!==-1) { //liée le point actuel avec la précédente imageline($courbe,($pasX-$echelleX),$yprev,$pasX,$y,$rouge); } //Afficher la valeur au dessus du point imagestring($courbe, 2, $pasX-15,$y-14 , $quantite, $bleu); $j=$quantite; //enregister la hauteur du point actuel pour la liaison avec la suivante $yprev=$y; //Decaller l'abscisse suivante par rapport à son echelle $pasX+=$echelleX; } // Deuxieme courbe $requeteilot = "SELECT `mois`, `qtilot` FROM graphique GROUP BY mois ORDER BY mois ASC"; $queryilot = $bdd->query($requeteilot); //Preparation des données : $moisFr=array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'); $resultatilot=array(); while($rowilot=$queryilot->fetch(PDO::FETCH_OBJ)) { //Mettre la ligne dans le tableau $resultatilot[$rowilot->mois]=$rowilot->qtilot; } deuxieme_image($courbe,$i,$resultatilot,$min,$max,$moisFr); //Envoyer le flux de l'image imagepng($courbe); //Desallouer le memoire utiliser par l'image imagedestroy($courbe); ?>
Un grand merci pour l'aide ;)
Il y a également un petit décalage de l'emplacement du point pour la deuxième courbe. De quoi est-ce que cela pourrait venir ?
J'avais vu le décalage. Je ne sais pas à quoi il est dû. C'est pour cela que j'avais écrit que j'allais simplifier le code pour que tout soit affiché en une seule fois.
Avec la nouvelle version il n'y a plus de décalage.
Pièce jointe 271909
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147 <?php try { $bdd = new PDO('mysql:host=localhost;dbname=mybdd', 'root', 'mdp'); //badaze $bdd = new PDO('mysql:host=127.0.0.1;dbname=tests', 'root', ''); $bdd->exec("SET CHARACTER SET utf8"); } catch (Exception $e) { die('Erreur : ' .$e->getMessage()); } // Recherche du mini et du maxi. Attention ta table ne contient pas d'année $requeteMinMax = "SELECT min(`qtvendu`) as minv,min(`qtilot`) as mini,max(`qtvendu`) as maxv,max(`qtilot`) as maxi, count(*) as compte FROM graphique "; $queryMinMax = $bdd->query($requeteMinMax); list($minv,$mini,$maxv,$maxi,$i) = $queryMinMax->fetch(); $min = min($minv,$mini); $max = max($maxv,$maxi); $requete = "SELECT `mois`, `qtvendu`, `qtilot` FROM graphique GROUP BY mois ORDER BY mois ASC"; $query = $bdd->query($requete); //Preparation des données : $moisFr=array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'); $resultat=array(); while($row=$query->fetch(PDO::FETCH_OBJ)) { //Mettre la ligne dans le tableau $resultat[$row->mois]=array($row->qtvendu,$row->qtilot); } //Préparation de l'image //Type mime de l'image header('Content-type: image/png'); //Chemin vers le police à utiliser $font_file = './fonts/comic.ttf'; //badaze $font_file = 'ARIAL.TTF'; //Adapter la largeur de l'image avec le nombre de données $largeur=$i*50+90; $hauteur=350; //Hauteur de l'abscisse par rapport au bas de l'image $absis=80; //Création de l'image $courbe=imagecreatetruecolor($largeur, $hauteur); //Allouer les couleurs à utiliser $bleu=imagecolorallocate($courbe, 0, 0, 255); $ligne=imagecolorallocate($courbe, 220, 220, 220); $fond=imagecolorallocate($courbe, 239, 239, 239); $noir=imagecolorallocate($courbe, 0, 0, 0); $rouge=imagecolorallocate($courbe, 255, 0, 0); //Colorier le fond imagefilledrectangle($courbe,0 , 0, $largeur, $hauteur, $fond); //Tracer l'axe des abscisses imageline($courbe, 50, $hauteur-$absis, $largeur-10,$hauteur-$absis, $noir); //Tracer l'axe des ordonnées imageline($courbe, 50,$hauteur-$absis,50,20, $noir); //Decaler 10px vers le haut l'axe si le minimum est différent de 0 if($min!=0) { $absis+=10; $a=10; } //Nombres des grid verticals $nbOrdonne=10; //Calcul de l'echelle des abscisses $echelleX=($largeur-100)/$i; //Calcul de l'echelle des ordonnees $echelleY=($hauteur-$absis-20)/$nbOrdonne; $i=$min; //Calcul des ordonnees des grid $py=($max-$min)/$nbOrdonne; $pasY=$absis; while($pasY<($hauteur-19)) { //Affiche la valeur de l'ordonnee imagestring($courbe, 2,10 , $hauteur-$pasY-6, round($i), $noir); //Trace la gride imageline($courbe, 50, $hauteur-$pasY, $largeur-20,$hauteur-$pasY, $ligne); //Decaller vers le haut pour la prochaine grid $pasY+=$echelleY; //Valeur de l'ordonnee suivante $i+=$py; } //Tracage du diagramme $j =-1; $jI =-1; //Position de la première mois de vente $pasX=90; //Parcourir le tableau pour le traçage de la diagramme foreach ($resultat as $mois => $subarray) { $quantiteV = $subarray[0]; $quantiteI = $subarray[1]; //calculer la hauteur du point par rapport à sa valeur $y =($hauteur) -(($quantiteV -$min) * ($echelleY/$py))-$absis; $yI =($hauteur) -(($quantiteI -$min) * ($echelleY/$py))-$absis; //dessiner le point imagefilledellipse($courbe, $pasX, $y, 6, 6, $rouge); imagefilledellipse($courbe, $pasX, $yI, 6, 6, $bleu); //Afficher le mois en français avec une inclinaison de 315° imagefttext($courbe, 10, 315, $pasX, $hauteur-$absis+20, $noir, $font_file, $moisFr[$mois-1]); //Tacer une ligne verticale de l'axe des abscisses vers le point imageline($courbe, $pasX, $hauteur-$absis+$a, $pasX,$y, $ligne); if($j!==-1) { //liée le point actuel avec la précédente imageline($courbe,($pasX-$echelleX),$yprev,$pasX,$y,$rouge); } //Afficher la valeur au dessus du point imagestring($courbe, 2, $pasX-20,$y-14 , $quantiteV, $bleu); $j=$quantiteV; //enregister la hauteur du point actuel pour la liaison avec la suivante $yprev=$y; //***************************************************************************** //Tacer une ligne verticale de l'axe des abscisses vers le point imageline($courbe, $pasX, $hauteur-$absis+$a, $pasX,$yI, $ligne); if($jI!==-1) { //liée le point actuel avec la précédente imageline($courbe,($pasX-$echelleX),$yprevI,$pasX,$yI,$noir); } //Afficher la valeur en dessous du point imagestring($courbe, 2, $pasX,$yI+5 , $quantiteI, $noir); $jI=$quantiteI; //enregister la hauteur du point actuel pour la liaison avec la suivante $yprevI=$yI; //***************************************************************************** //Decaller l'abscisse suivante par rapport à son echelle $pasX+=$echelleX; } //Envoyer le flux de l'image imagepng($courbe); //Desallouer le memoire utiliser par l'image imagedestroy($courbe); ?>
Impressionné ! C'est top merci beaucoup :D:mrgreen:
Je passe le sujet en résolu.
Version qui permet de gérer plus de courbes.
Pièce jointe 272035
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152 <?php function trace_courbe($tableauValeurs,$couleurPoint,$couleurLigne,$couleurTexte,$positionTexteX,$positionTexteY) { // variables globales $hauteur = $GLOBALS['hauteur']; $min = $GLOBALS['min']; $echelleY = $GLOBALS['echelleY']; $py = $GLOBALS['py']; $absis = $GLOBALS['absis']; $courbe = $GLOBALS['courbe']; $echelleX = $GLOBALS['echelleX']; $moisFr = $GLOBALS['moisFr']; $noir = $GLOBALS['noir']; $font_file= $GLOBALS['font_file']; $a = $GLOBALS['a']; $ligne = $GLOBALS['ligne']; //Tracage du diagramme $j=-1; //Position de la première mois de vente $pasX=90; //Parcourir le tableau pour le traçage de la diagramme foreach ($tableauValeurs as $mois => $quantite) { //calculer la hauteur du point par rapport à sa valeur $y=($hauteur) -(($quantite -$min) * ($echelleY/$py))-$absis; //dessiner le point imagefilledellipse($courbe, $pasX, $y, 6, 6, $couleurPoint); //Afficher le mois en français avec une inclinaison de 315° imagefttext($courbe, 10, 315, $pasX, $hauteur-$absis+20, $noir, $font_file, $moisFr[$mois-1]); //Tacer une ligne verticale de l'axe des abscisses vers le point imageline($courbe, $pasX, $hauteur-$absis+$a, $pasX,$y, $ligne); if($j!==-1) { //liée le point actuel avec la précédente imageline($courbe,($pasX-$echelleX),$yprev,$pasX,$y,$couleurLigne); } //Afficher la valeur au dessus du point imagestring($courbe, 2, $pasX+$positionTexteX,$y+$positionTexteY , $quantite, $couleurTexte); $j=$quantite; //enregister la hauteur du point actuel pour la liaison avec la suivante $yprev=$y; //Decaller l'abscisse suivante par rapport à son echelle $pasX+=$echelleX; } } try { $bdd = new PDO('mysql:host=localhost;dbname=mybdd', 'root', 'mdp'); //badaze $bdd = new PDO('mysql:host=127.0.0.1;dbname=tests', 'root', ''); $bdd->exec("SET CHARACTER SET utf8"); } catch (Exception $e) { die('Erreur : ' .$e->getMessage()); } // Recherche du mini et du maxi. Attention ta table ne contient pas d'année $requeteMinMax = "SELECT min(`qtvendu`) as minv,min(`qtilot`) as mini,max(`qtvendu`) as maxv,max(`qtilot`) as maxi, count(*) as compte FROM graphique "; $queryMinMax = $bdd->query($requeteMinMax); list($minv,$mini,$maxv,$maxi,$i) = $queryMinMax->fetch(); $min = min($minv,$mini); $max = max($maxv,$maxi); $requete = "SELECT `mois`, `qtvendu`, `qtilot` FROM graphique GROUP BY mois ORDER BY mois ASC"; $query = $bdd->query($requete); //Preparation des données : $moisFr=array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'); $qtevendu = array(); $qtilot = array(); $moyenne = array(); while($row=$query->fetch(PDO::FETCH_OBJ)) { //Mettre la ligne dans le tableau $qtevendu[$row->mois] = $row->qtvendu; $qtilot[$row->mois] = $row->qtilot; //----- Moyenne $moyenne[$row->mois] = (int)($row->qtvendu+$row->qtilot)/2; } //Préparation de l'image //Type mime de l'image header('Content-type: image/png'); //Chemin vers le police à utiliser $font_file = './fonts/comic.ttf'; //badaze $font_file = 'ARIAL.TTF'; //Adapter la largeur de l'image avec le nombre de données $largeur=$i*50+90; $hauteur=350; //Hauteur de l'abscisse par rapport au bas de l'image $absis=80; //Création de l'image $courbe=imagecreatetruecolor($largeur, $hauteur); //Allouer les couleurs à utiliser $bleu = imagecolorallocate($courbe, 0, 0, 255); $ligne = imagecolorallocate($courbe, 220, 220, 220); $fond = imagecolorallocate($courbe, 239, 239, 239); $noir = imagecolorallocate($courbe, 0, 0, 0); $rouge = imagecolorallocate($courbe, 255, 0, 0); $vert = imagecolorallocate($courbe, 50, 205, 50); //Colorier le fond imagefilledrectangle($courbe,0 , 0, $largeur, $hauteur, $fond); //Tracer l'axe des abscisses imageline($courbe, 50, $hauteur-$absis, $largeur-10,$hauteur-$absis, $noir); //Tracer l'axe des ordonnées imageline($courbe, 50,$hauteur-$absis,50,20, $noir); //Decaler 10px vers le haut l'axe si le minimum est différent de 0 if($min!=0) { $absis+=10; $a=10; } //Nombres des grid verticals $nbOrdonne=10; //Calcul de l'echelle des abscisses $echelleX=($largeur-100)/$i; //Calcul de l'echelle des ordonnees $echelleY=($hauteur-$absis-20)/$nbOrdonne; $i=$min; //Calcul des ordonnees des grid $py=($max-$min)/$nbOrdonne; $pasY=$absis; while($pasY<($hauteur-19)) { //Affiche la valeur de l'ordonnee imagestring($courbe, 2,10 , $hauteur-$pasY-6, round($i), $noir); //Trace la gride imageline($courbe, 50, $hauteur-$pasY, $largeur-20,$hauteur-$pasY, $ligne); //Decaller vers le haut pour la prochaine grid $pasY+=$echelleY; //Valeur de l'ordonnee suivante $i+=$py; } //Tracage du diagramme // qtvendu trace_courbe($qtevendu,$noir,$rouge,$rouge,-20,-14); // qtilot trace_courbe($qtilot,$noir,$bleu,$bleu,0,5); // moyenne trace_courbe($moyenne,$noir,$vert,$vert,5,0); //Envoyer le flux de l'image imagepng($courbe); //Desallouer le memoire utiliser par l'image imagedestroy($courbe); ?>