add debug
[kps.git] / kps_web / kps_result / drawimg.php
blob534f1b18ff55f56584545ee777521ecab3d4760a
1 <?php
2 include 'core.inc.php';
4 function drawrectangle($image, $xstart, $ystart, $xend, $yend, $color)
6 imageline($image, $xstart, $ystart, $xend, $ystart, $color);
7 imageline($image, $xend, $ystart, $xend, $yend, $color);
8 imageline($image, $xend, $yend, $xstart, $yend, $color);
9 imageline($image, $xstart, $yend, $xstart, $ystart, $color);
12 function drawpoint($image, $cx, $cy, $width, $color)
14 imagefilledellipse($image, $cx, $cy, $width, $width, $color);
17 Header("Content-type: image/gif");
18 $diagramwidth = 1200;
19 $diagramheight = 400;
20 $framexstart=0;
21 $frameystart=0;
22 $framexend=$diagramwidth-1;
23 $frameyend=$diagramheight-1;
24 $image = imageCreate($diagramwidth, $diagramheight);
25 $colorbackgr = imageColorAllocate($image, 255, 255, 255);
26 $colorpanel = imageColorAllocate($image, 240, 250, 150);
27 $colorgrid = imageColorAllocate($image, 20, 80, 80);
28 $colorset = imageColorAllocate($image, 240, 10, 50);
29 $colorline = imageColorAllocate($image, 50, 10, 240);
30 imagefilledrectangle($image, 0, 0, $diagramwidth+1, $diagramheight+1, $colorbackgr);
31 /* draw a frame */
32 drawrectangle($image, $framexstart, $frameystart, $framexend, $frameyend, $colorgrid);
34 if($_REQUEST["action"]=="commit"){
35 $title = "Commit Count";
36 $release = getrelease();
37 $xcount = count($release);
39 $name=id2name($id);
41 $value = getinfo($name, $release, "set_num");
42 $value2 = getinfo($name, $release, "line_num");
44 $xcordxstart = $framexstart+100;
45 $xcordystart = $frameyend-30;
46 $xcordxend = $framexend-100;
47 $xcordyend = $xcordystart;
49 $ycordxstart = $xcordxstart;
50 $ycordystart = $xcordystart;
51 $ycordxend = $ycordxstart;
52 $ycordyend = $frameystart+30;
54 $y2cordxstart = $xcordxend;
55 $y2cordystart = $xcordystart;
56 $y2cordxend = $y2cordxstart;
57 $y2cordyend = $ycordyend;
59 /* draw cord */
60 imageline($image, $xcordxstart, $xcordystart, $xcordxend, $xcordyend, $colorgrid);
61 imageline($image, $ycordxstart, $ycordystart, $ycordxend, $ycordyend, $colorgrid);
63 /* draw x grid */
64 $xgridwidth = ($xcordxend-$xcordxstart)/($xcount-1);
65 for ($i = 0; $i < $xcount; $i++) {
66 $xcurrent = $xcordxstart+$i*$xgridwidth;
67 $font = 1;
68 imageline($image, $xcurrent, $xcordystart,
69 $xcurrent, $xcordystart-3, $colorgrid);
70 if ($i%2 == 0)
71 $ytmp = $xcordystart+10;
72 else
73 $ytmp = $xcordystart+2;
74 imagestring($image, $font, $xcurrent-10, $ytmp, $release[$i], $colorgrid);
77 /* title */
78 $font = 5;
79 $charwidth = 9;
80 $xcurrent = ($framexend - strlen($title)*$charwidth)/2;
81 imagestring($image, $font, $xcurrent, $frameystart+5,
82 $title, $colorgrid);
84 imageline($image, $y2cordxstart, $y2cordystart, $y2cordxend, $y2cordyend, $colorgrid);
85 $font = 4;
86 imagestringup($image, $font, $xcordxstart-70, $ycordyend+200, "Change Sets", $colorset);
87 imagestringup($image, $font, $xcordxend+60, $ycordyend+220, "Changed Lines", $colorline);
89 /* draw y grid, Be carefull zero div */
90 $ygridheight = ($ycordystart-$ycordyend)/10;
91 if (maxofarray($value) <= 10)
92 $ypergrid = 1;
93 else
94 $ypergrid = maxofarray($value)/10;
95 if (maxofarray($value2) <= 10)
96 $y2pergrid = 1;
97 else
98 $y2pergrid = maxofarray($value2)/10;
99 for ($i = 0; $i < 11; $i++) {
100 $ycurrent = $ycordystart-$i*$ygridheight;
101 $font = 2;
102 /* y cord 1 */
103 imageline($image, $ycordxstart, $ycurrent,
104 $ycordxstart+3, $ycurrent, $colorgrid);
105 imagestring($image, $font, $ycordxstart-35,
106 $ycurrent-7, intval($i*$ypergrid), $colorset);
107 /* y cord 2 */
108 imageline($image, $y2cordxstart, $ycurrent,
109 $y2cordxstart-3, $ycurrent, $colorgrid);
110 imagestring($image, $font, $y2cordxstart+5,
111 $ycurrent-7, intval($i*$y2pergrid), $colorline);
114 /* draw change line of changeset*/
115 for ($i = 0; $i < $xcount; $i++) {
116 $xstart = $xcordxstart+$i*$xgridwidth;
117 $ystart = $ycordystart-$value[$i]*$ygridheight/$ypergrid;
118 $point_width = 7;
119 drawpoint($image, $xstart, $ystart, $point_width, $colorset);
120 if(($i+1) < $xcount) {
121 $xend = $xcordxstart+($i+1)*$xgridwidth;
122 $yend = $ycordystart-$value[$i+1]*$ygridheight/$ypergrid;
123 imageline($image, $xstart, $ystart,
124 $xend, $yend, $colorset);
128 /* draw change line of changedlines*/
129 for ($i = 0; $i < $xcount; $i++) {
130 $xstart = $xcordxstart+$i*$xgridwidth;
131 $ystart = $ycordystart-$value2[$i]*$ygridheight/$y2pergrid;
132 $point_width = 7;
133 drawpoint($image, $xstart, $ystart, $point_width, $colorline);
134 if(($i+1) < $xcount) {
135 $xend = $xcordxstart+($i+1)*$xgridwidth;
136 $yend = $ycordystart-$value2[$i+1]*$ygridheight/$y2pergrid;
137 imageline($image, $xstart, $ystart,
138 $xend, $yend, $colorline);
142 imagepng($image);
143 imagedestroy($image);
144 exit(0);
147 if($_REQUEST["action"]=="rank"){
148 $title = "Commit Rank";
149 $release = getrelease();
150 $xcount = count($release);
152 $name=id2name($id);
154 $value = getrank($name, $release, "set_num");
155 $value2 = getrank($name, $release, "line_num");
156 $max = (maxofarray($value) > maxofarray($value2)) ?
157 maxofarray($value): maxofarray($value2);
158 $min = (minofarray($value) < minofarray($value2)) ?
159 minofarray($value): minofarray($value2);
161 $xcordxstart = $framexstart+50;
162 $xcordystart = $frameyend-30;
163 $xcordxend = $framexend-150;
164 $xcordyend = $xcordystart;
166 $ycordxstart = $xcordxstart;
167 $ycordystart = $xcordystart;
168 $ycordxend = $ycordxstart;
169 $ycordyend = $frameystart+30;
171 $y2cordxstart = $xcordxend;
172 $y2cordystart = $xcordystart;
173 $y2cordxend = $y2cordxstart;
174 $y2cordyend = $ycordyend;
176 /* draw cord */
177 imageline($image, $xcordxstart, $xcordystart, $xcordxend, $xcordyend, $colorgrid);
178 imageline($image, $ycordxstart, $ycordystart, $ycordxend, $ycordyend, $colorgrid);
180 /* draw x grid */
181 $xgridwidth = ($xcordxend-$xcordxstart)/($xcount-1);
182 for ($i = 0; $i < $xcount; $i++) {
183 $xcurrent = $xcordxstart+$i*$xgridwidth;
184 $font = 1;
185 imageline($image, $xcurrent, $xcordystart,
186 $xcurrent, $xcordystart-3, $colorgrid);
187 if ($i%2 == 0)
188 $ytmp = $xcordystart+10;
189 else
190 $ytmp = $xcordystart+2;
191 imagestring($image, $font, $xcurrent-10, $ytmp, $release[$i], $colorgrid);
194 /* title */
195 $font = 5;
196 $charwidth = 9;
197 $xcurrent = ($framexend - strlen($title)*$charwidth)/2;
198 imagestring($image, $font, $xcurrent, $frameystart+5,
199 $title, $colorgrid);
201 $font = 4;
202 imagefilledrectangle($image, $xcordxend+20, $ycordyend+100,
203 $xcordxend+138, $ycordyend+205, $colorpanel);
204 imageline($image, $y2cordxstart+30, $ycordyend+110,
205 $y2cordxstart+70, $ycordyend+110, $colorset);
206 imageline($image, $y2cordxstart+30, $ycordyend+170,
207 $y2cordxstart+70, $ycordyend+170, $colorline);
208 imagestring($image, $font, $xcordxend+30, $ycordyend+120, "Change Sets", $colorset);
209 imagestring($image, $font, $xcordxend+30, $ycordyend+180, "Changed Lines", $colorline);
211 /* draw y grid */
212 $ygridheight = ($ycordystart-$ycordyend)/10;
213 if (($max-$min) <= 10)
214 $ypergrid = 1;
215 else
216 $ypergrid = ($max-$min)/10;
217 for ($i = 0; $i < 11; $i++) {
218 $ycurrent = $ycordystart-$i*$ygridheight;
219 $font = 2;
220 /* y cord 1 */
221 imageline($image, $ycordxstart, $ycurrent,
222 $ycordxstart+3, $ycurrent, $colorgrid);
223 imagestring($image, $font, $ycordxstart-35, $ycurrent-7,
224 intval($max-$i*$ypergrid),
225 $colorgrid);
228 /* draw change line of changeset*/
229 for ($i = 0; $i < $xcount; $i++) {
230 $xstart = $xcordxstart+$i*$xgridwidth;
231 if ($value[$i] == 0)
232 continue;
233 $offset = $max-$value[$i];
234 $ystart = $ycordystart-($offset*$ygridheight/$ypergrid);
235 $point_width = 7;
236 drawpoint($image, $xstart, $ystart, $point_width, $colorset);
237 /* skip the point which is zero */
238 while (($value[$i+1] == 0) && (($i+1) < $xcount)) {
239 $i++;
241 if(($i+1) < $xcount) {
242 $xend = $xcordxstart+($i+1)*$xgridwidth;
243 $offset = $max-$value[$i+1];
244 $yend = $ycordystart-($offset*$ygridheight/$ypergrid);
245 imageline($image, $xstart, $ystart,
246 $xend, $yend, $colorset);
250 /* draw change line of changedlines*/
251 for ($i = 0; $i < $xcount; $i++) {
252 $xstart = $xcordxstart+$i*$xgridwidth;
253 if ($value2[$i] == 0)
254 continue;
255 $offset = $max-$value2[$i];
256 $ystart = $ycordystart-($offset*$ygridheight/$ypergrid);
257 $point_width = 7;
258 drawpoint($image, $xstart, $ystart, $point_width, $colorline);
259 /* skip the point which is zero */
260 while (($value2[$i+1] == 0) && (($i+1) < $xcount)) {
261 $i++;
263 if(($i+1) < $xcount) {
264 $xend = $xcordxstart+($i+1)*$xgridwidth;
265 $offset = $max-$value2[$i+1];
266 $yend = $ycordystart-($offset*$ygridheight/$ypergrid);
267 imageline($image, $xstart, $ystart,
268 $xend, $yend, $colorline);
272 imagepng($image);
273 imagedestroy($image);
274 exit(0);
277 if($_REQUEST["action"]=="who"){
278 $title = 'How Many People and Org are Commiting';
279 $release = getrelease();
280 $xcount = count($release);
282 $value = getwho(0, $release);
283 $value2 = getwho(1, $release);
285 $xcordxstart = $framexstart+100;
286 $xcordystart = $frameyend-30;
287 $xcordxend = $framexend-100;
288 $xcordyend = $xcordystart;
290 $ycordxstart = $xcordxstart;
291 $ycordystart = $xcordystart;
292 $ycordxend = $ycordxstart;
293 $ycordyend = $frameystart+30;
295 $y2cordxstart = $xcordxend;
296 $y2cordystart = $xcordystart;
297 $y2cordxend = $y2cordxstart;
298 $y2cordyend = $ycordyend;
300 /* draw cord */
301 imageline($image, $xcordxstart, $xcordystart, $xcordxend, $xcordyend, $colorgrid);
302 imageline($image, $ycordxstart, $ycordystart, $ycordxend, $ycordyend, $colorgrid);
304 /* draw x grid */
305 $xgridwidth = ($xcordxend-$xcordxstart)/($xcount-1);
306 for ($i = 0; $i < $xcount; $i++) {
307 $xcurrent = $xcordxstart+$i*$xgridwidth;
308 $font = 1;
309 imageline($image, $xcurrent, $xcordystart,
310 $xcurrent, $xcordystart-3, $colorgrid);
311 if ($i%2 == 0)
312 $ytmp = $xcordystart+10;
313 else
314 $ytmp = $xcordystart+2;
315 imagestring($image, $font, $xcurrent-10, $ytmp, $release[$i], $colorgrid);
318 /* title */
319 $font = 5;
320 $charwidth = 9;
321 $xcurrent = ($framexend - strlen($title)*$charwidth)/2;
322 imagestring($image, $font, $xcurrent, $frameystart+5,
323 $title, $colorgrid);
325 imageline($image, $y2cordxstart, $y2cordystart, $y2cordxend, $y2cordyend, $colorgrid);
326 $font = 4;
327 imagestringup($image, $font, $xcordxstart-70, $ycordyend+200, "How Many People", $colorset);
328 imagestringup($image, $font, $xcordxend+60, $ycordyend+220, "How Many Organizitions", $colorline);
330 /* draw y grid, Be carefull zero div */
331 $ygridheight = ($ycordystart-$ycordyend)/10;
332 /* set max commiter as static */
333 $ypergrid = 1800/10;
334 /* set max commite employer as static */
335 $y2pergrid = 300/10;
336 for ($i = 0; $i < 11; $i++) {
337 $ycurrent = $ycordystart-$i*$ygridheight;
338 $font = 2;
339 /* y cord 1 */
340 imageline($image, $ycordxstart, $ycurrent,
341 $ycordxstart+3, $ycurrent, $colorgrid);
342 imagestring($image, $font, $ycordxstart-35,
343 $ycurrent-7, intval($i*$ypergrid), $colorset);
344 /* y cord 2 */
345 imageline($image, $y2cordxstart, $ycurrent,
346 $y2cordxstart-3, $ycurrent, $colorgrid);
347 imagestring($image, $font, $y2cordxstart+5,
348 $ycurrent-7, intval($i*$y2pergrid), $colorline);
351 /* draw change line of changeset*/
352 for ($i = 0; $i < $xcount; $i++) {
353 $xstart = $xcordxstart+$i*$xgridwidth;
354 $ystart = $ycordystart-$value[$i]*$ygridheight/$ypergrid;
355 $point_width = 7;
356 drawpoint($image, $xstart, $ystart, $point_width, $colorset);
357 if(($i+1) < $xcount) {
358 $xend = $xcordxstart+($i+1)*$xgridwidth;
359 $yend = $ycordystart-$value[$i+1]*$ygridheight/$ypergrid;
360 imageline($image, $xstart, $ystart,
361 $xend, $yend, $colorset);
365 /* draw change line of changedlines*/
366 for ($i = 0; $i < $xcount; $i++) {
367 $xstart = $xcordxstart+$i*$xgridwidth;
368 $ystart = $ycordystart-$value2[$i]*$ygridheight/$y2pergrid;
369 $point_width = 7;
370 drawpoint($image, $xstart, $ystart, $point_width, $colorline);
371 if(($i+1) < $xcount) {
372 $xend = $xcordxstart+($i+1)*$xgridwidth;
373 $yend = $ycordystart-$value2[$i+1]*$ygridheight/$y2pergrid;
374 imageline($image, $xstart, $ystart,
375 $xend, $yend, $colorline);
379 imagepng($image);
380 imagedestroy($image);
381 exit(0);