Bonjour à tous,
je travaille actuellement dans le cadre de mon boulot sur un back office dans lequel j'ai plusieurs pages de tests.
Dans une de ses pages qui concerne les stats de résiliation, j'ai créé un graphique en batons en GD (en fait je l'avais déjà fais pour un autre back office j'ai simplement repris le code) car j'aime bien créer mes propres graphiques vu que souvent les librairies permettent moins de liberté de création.
Voici le rendu final de l'image :



Les battons de chaque FAI sont crée avec la fonction ImageFilledRectangle pour le rectangle principal et 2 ImageFilledPolygon pour l'effet 3D, mais si on regarde l'image de plus près on peut voir que la jonction entre les 2 polygones gache un peu l'effet, pourtant les 2 polygons sont censés se regrouper au même point (le coin supérieur droit du rectangle).

Voici le code du rectangle de chaque FAI :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
//Coordonnées Alice :
$x1['Alice'] = 51;
//La hauteur du rectangle est calculé en divisant le nombre de résiliations d'Alice divisé par le plus grand nombre de résiliations du mois multiplié par la hauteur maximum du graphique :
$y1['Alice'] = 298 - (($tab_result['Alice'] / $max) * 250);
$x2['Alice'] = 93;
$y2['Alice'] = 298;
 
//Le tableau $points3d correspond au polygon du haut (le plus clair) :
$points3d['x1'] = $x1['Alice'];
$points3d['y1'] = $y1['Alice'];
$points3d['x2'] = $x1['Alice'] + 5;
$points3d['y2'] = $y1['Alice'] - 5;
$points3d['x3'] = $x2['Alice'] + 5;
$points3d['y3'] = $y1['Alice'] - 5;
$points3d['x4'] = $x2['Alice'];
$points3d['y4'] = $y1['Alice'];
$coord3d['Alice'] = array($points3d['x1'], $points3d['y1'], $points3d['x2'], $points3d['y2'], $points3d['x3'], $points3d['y3'], $points3d['x4'], $points3d['y4']);
 
//Le tableau $points3d2 correspond au polygon de droite (le plus sombre) :
$points3d2['x1'] = $x2['Alice'];
$points3d2['y1'] = $y1['Alice'];
$points3d2['x2'] = $x2['Alice'] + 5;
$points3d2['y2'] = $y1['Alice'] - 5;
$points3d2['x3'] = $x2['Alice'] + 5;
$points3d2['y3'] = $y2['Alice'];
$points3d2['x4'] = $x2['Alice'];
$points3d2['y4'] = $y2['Alice'];
$coord3d2['Alice'] = array($points3d2['x1'], $points3d2['y1'], $points3d2['x2'], $points3d2['y2'], $points3d2['x3'], $points3d2['y3'], $points3d2['x4'], $points3d2['y4']);
 
//Création du batton d'alice :
ImageFilledRectangle($image, $x1['Alice'], $y1['Alice'], $x2['Alice'], $y2['Alice'], $vert);
ImageFilledPolygon ($image, $coord3d['Alice'], 4, $vertclair);
ImageFilledPolygon ($image, $coord3d2['Alice'], 4, $vertfonce);
ImageString($image, 2, 60, 305, "Alice", $vertfonce);
Quelqu'un à une idée à me proposer pour corriger l'accro du coin supérieur droit ?
Merci d'avance