home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 October / CMCD1004.ISO / Software / Shareware / Programare / cnstats / graph / bar.php < prev    next >
Encoding:
PHP Script  |  2004-06-21  |  3.0 KB  |  129 lines

  1. <?
  2. session_start();
  3. session_register("DATA");
  4. $DATA=$HTTP_SESSION_VARS["DATA"];
  5.  
  6. include "../_funct.php";
  7.  
  8. // ╨ατ≡σ°σφΦσ
  9. $W=$IMGW;
  10. $H=$IMGH;
  11.  
  12. // ╬≥±≥≤∩√
  13. $MB=20; // bottom
  14. $ML=8; // left
  15. $M=5; // ε±≥αδⁿφ√σ
  16.  
  17. // ╪Φ≡Φφα εΣφεπε ±Φ∞Γεδα
  18. $LW=imagefontwidth(2);
  19.  
  20. // ╩εδΦ≈σ±≥Γε ²δσ∞σφ≥εΓ
  21. $count=count($DATA[0]);
  22. if (count($DATA[1])>$count) $count=count($DATA[1]);
  23. if (count($DATA[2])>$count) $count=count($DATA[2]);
  24.  
  25. if ($count==0) $count=1;
  26.  
  27. // ╤πδαµΦΓασ∞ π≡α⌠ΦΩΦ ##########################################################
  28. if ($HTTP_GET_VARS["s"]==1) {
  29.     for ($i=2;$i<$count-2;$i++) {
  30.         for ($j=0;$j<$count;$j++) {
  31.             $DATA[$j][$i]=($DATA[$j][$i-1]+$DATA[$j][$i-2]+$DATA[$j][$i]+$DATA[$j][$i+1]+$DATA[$j][$i+2])/5;
  32.             }
  33.         }
  34.     }
  35.  
  36. // ╠αΩ±Φ∞αδⁿφεσ τφα≈σφΦσ
  37. $max=0;
  38. for ($i=0;$i<$count;$i++) {
  39.     $max=$max<$DATA[0][$i]?$DATA[0][$i]:$max;
  40.     $max=$max<$DATA[1][$i]?$DATA[1][$i]:$max;
  41.     $max=$max<$DATA[2][$i]?$DATA[2][$i]:$max;
  42.     }
  43.  
  44. include "shared.php";
  45.  
  46. $county=10;
  47. $max=$nmax;
  48.  
  49. // ╧εΣ≡αΓφ σ∞ δσΓ≤■ π≡αφΦ÷≤
  50. $text_width=strlen(cNumber($max))*$LW;
  51. $ML+=$text_width;
  52.  
  53. // ╨σαδⁿφ√σ ≡ατ∞σ≡√ π≡α⌠ΦΩα
  54. $RW=$W-$ML-$M;
  55. $RH=$H-$MB-$M;
  56.  
  57. // ╩εε≡ΣΦφα≥√ φ≤δ 
  58. $X0=$ML;
  59. $Y0=$H-$MB;
  60.  
  61. $step=$RH/$county;
  62.  
  63. imagefilledrectangle($im, $X0, $Y0-$RH, $X0+$RW, $Y0, $bg[1]);
  64. imagerectangle($im, $X0, $Y0, $X0+$RW, $Y0-$RH, $c);
  65.  
  66. // ┬√ΓεΣ ±σ≥ΩΦ ∩ε ε±Φ Y
  67. for ($i=1;$i<=$county;$i++) {
  68.     $y=$Y0-$step*$i;
  69.     imageline($im,$X0,$y,$X0+$RW,$y,$c);
  70.     imageline($im,$X0,$y,$X0-($ML-$text_width)/4,$y,$text);
  71.     }
  72.  
  73. // ┬√ΓεΣ ±σ≥ΩΦ ∩ε ε±Φ X
  74. // ┬√ΓεΣ Φτ∞σφ σ∞εΘ ±σ≥ΩΦ
  75. for ($i=0;$i<$count;$i++) {
  76.     imageline($im,$X0+$i*($RW/$count),$Y0,$X0+$i*($RW/$count),$Y0,$c);
  77.     imageline($im,$X0+$i*($RW/$count),$Y0,$X0+$i*($RW/$count),$Y0-$RH,$c);
  78.     }
  79.  
  80. // ┬√ΓεΣ ±≥εδß÷σΓ
  81. for ($i=0;$i<$count;$i++) {
  82.     $x=$X0+$i*($RW/$count)+2;
  83.     $y1=$Y0-($RH/$max*$DATA[0][$i]);
  84.     $x2=$x+intval($RW/$count)-2;
  85.     imagefilledrectangle($im, $x, $y1, $x2, $Y0, $bar[0][0]);
  86.     imagerectangle($im, $x, $y1, $x2, $Y0, $bar[0][2]);
  87.  
  88.     $y1=$Y0-($RH/$max*$DATA[1][$i]);
  89.     imagefilledrectangle($im, $x, $y1, $x2, $Y0, $bar[1][0]);
  90.     imagerectangle($im, $x, $y1, $x2, $Y0, $bar[1][2]);
  91.  
  92.     $y1=$Y0-($RH/$max*$DATA[2][$i]);
  93.     imagefilledrectangle($im, $x, $y1, $x2, $Y0, $bar[2][0]);
  94.     imagerectangle($im, $x, $y1, $x2, $Y0, $bar[2][2]);
  95.     }
  96.  
  97. // ╙∞σφⁿ°σφΦσ Φ ∩σ≡σ±≈σ≥ Ωε≡≡ΣΦφα≥
  98. $ML-=$text_width;
  99.  
  100. $text=imagecolorallocate($im,136,197,145);
  101.  
  102. // ┬√ΓεΣ ∩εΣ∩Φ±σΘ ∩ε ε±Φ Y
  103. for ($i=1;$i<=$county;$i++) {
  104.     $str=cNumber(($max/$county)*$i);
  105.     imagestring($im,2, $X0-strlen($str)*$LW-$ML/4-2,$Y0-$step*$i-imagefontheight(2)/2,$str,$text);
  106.     }
  107.  
  108. // ┬√ΓεΣ ∩εΣ∩Φ±σΘ ∩ε ε±Φ X
  109. $prev=100000;
  110. $twidth=$LW*strlen($DATA["x"][0])+6;
  111. $i=$X0+$RW;
  112.  
  113. while ($i>$X0) {
  114.     if ($prev-$twidth>$i) {
  115.         $drawx=$i-($RW/$count)/2;
  116.         if ($drawx>$X0) {
  117.             $str=$DATA["x"][intval(($i-$X0)/($RW/$count))-1];
  118.             imageline($im,$drawx,$Y0,$i-($RW/$count)/2,$Y0+5,$text);
  119.             imagestring($im,2, $drawx-(strlen($str)*$LW)/2 ,$Y0+7,$str,$text);
  120.             }
  121.         $prev=$i;
  122.         }
  123.     $i-=$RW/$count;
  124.     }
  125.  
  126. header("Content-Type: image/png");
  127. imagepng($im);
  128. imagedestroy($im);
  129. ?>