|
class diagram{
var $width;
var $height;
var $thick;
function draw($rows){
foreach ($rows as $value){
$total+=$value;
}
$image = imagecreatetruecolor($this->width, $this->height);
// allocate some colors
$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$color[1] = imagecolorallocate($image, 128, 0, 0);
$color_d[1] = imagecolorallocate($image, 78, 0, 0);
$color_h[1] = "800000";
$color[2] = imagecolorallocate($image, 153, 204, 0);
$color_d[2] = imagecolorallocate($image, 134, 178, 0);
$color_h[2] = "99cc00";
$color[3] = imagecolorallocate($image, 255, 204, 0);
$color_d[3] = imagecolorallocate($image, 217, 174, 0);
$color_h[3] = "ffcc00";
$color[4] = imagecolorallocate($image, 255, 102, 0);
$color_d[4] = imagecolorallocate($image, 214, 86, 0);
$color_h[4] = "ff6600";
$color[5] = imagecolorallocate($image, 255, 0, 255);
$color_d[5] = imagecolorallocate($image, 207, 0, 207);
$color_h[5] = "ff00ff";
$color[6] = imagecolorallocate($image, 255, 255, 0);
$color_d[6] = imagecolorallocate($image, 219, 219, 0);
$color_h[6] = "ffff00";
$color[7] = imagecolorallocate($image, 128, 128, 0);
$color_d[7] = imagecolorallocate($image, 108, 108, 0);
$color_h[7] = "808000";
$color[8] = imagecolorallocate($image, 128, 128, 128);
$color_d[8] = imagecolorallocate($image, 111, 111, 111);
$color_h[8] = "808080";
$color[9] = imagecolorallocate($image, 255, 204, 153);
$color_d[9] = imagecolorallocate($image, 223, 178, 134);
$color_h[9] = "ffcc99";
$color[10] = imagecolorallocate($image, 0, 0, 255);
$color_d[10] = imagecolorallocate($image, 0, 0, 185);
$color_h[10] = "0000ff";
$color[11] = imagecolorallocate($image, 0, 255, 255);
$color_d[11] = imagecolorallocate($image, 0, 218, 218);
$color_h[11] = "00ffff";
$color[12] = imagecolorallocate($image, 204, 255, 204);
$color_d[12] = imagecolorallocate($image, 178, 223, 178);
$color_h[12] = "ccffcc";
$color[13] = imagecolorallocate($image, 51, 204, 204);
$color_d[13] = imagecolorallocate($image, 43, 173, 173);
$color_h[13] = "33cccc";
$color[14] = imagecolorallocate($image, 0, 255, 0);
$color_d[14] = imagecolorallocate($image, 0, 219, 0);
$color_h[14] = "00ff00";
$color[15] = imagecolorallocate($image, 153, 204, 255);
$color_d[15] = imagecolorallocate($image, 136, 182, 227);
$color_h[15] = "99ccff";
$color[16] = imagecolorallocate($image, 0, 128, 0);
$color_d[16] = imagecolorallocate($image, 0, 97, 0);
$color_h[16] = "008000";
$color[17] = imagecolorallocate($image, 0, 204, 255);
$color_d[17] = imagecolorallocate($image, 0, 175, 219);
$color_h[17] = "00ccff";
$color[18] = imagecolorallocate($image, 204, 255, 255);
$color_d[18] = imagecolorallocate($image, 182, 227, 227);
$color_h[18] = "ccffff";
$color[19] = imagecolorallocate($image, 150, 150, 150);
$color_d[19] = imagecolorallocate($image, 113, 113, 113);
$color_h[19] = "969696";
$color[20] = imagecolorallocate($image, 255, 0, 0);
$color_d[20] = imagecolorallocate($image, 209, 0, 0);
$color_h[20] = "ff0000";
imagefill($image, 0, 0, $white);
// make the 3D effect
for ($i = (($this->height/2) + $this->thick); $i > ($this->height/2); $i--) {
$j=0;
$z1=0;
if ($rows){
foreach ($rows as $value){
$j++;
$z2=$z1+(360/($total/$value));
imagefilledarc($image, ($this->width/2), $i, $this->width, ($this->height)/2, $z1, $z2, $color_d[$j], IMG_ARC_PIE);
$z1=$z2;
}
}
}
$j=0;
$z1=0;
foreach ($rows as $value){
$j++;
$z2=$z1+(360/($total/$value));
imagefilledarc($image, ($this->width/2), ($this->height/2), $this->width, ($this->height)/2, $z1, $z2, $color[$j], IMG_ARC_PIE);
$colorback[]=$color_h[$j];
$z1=$z2;
}
imagepng($image, "draw.png");
return $colorback;
}
}
|
|