|            
########  bimage.php3  ########  ??> /*  函数说明  $chartdata:数据,是数组元素  $chartfont:字号  $chartdiameter:决定饼的大小(要看你饿不饿了,呵呵)  $chartlabel:标题,也是数组元素  $colorslice:颜色数组,例如$tmp=array255,255,255);$colorslic=array($tmp);  $colorborder:边框颜色,数组  $colortext :文本颜色,数组  $colorbody:背景颜色,数组  $file:输出图片文件名*/  function bimage($chartdata,  $chartfont,  $chartdiameter ,  $chartlabel ,  $colorslice,  $colorbody ,  $colorborder,  $colortext ,  $file  )  {  $chartdiameter=150; 
  $chartfontheight=imagefontheight($chartfont);  $d1=10;$d2=20;$d3=30;$d4=40;$d5=50;  $chartdata=array($d1,$d2,$d3,$d4,$d5);  $chartlabel=array("D1","D2","D3","D4","D5");  $chartwidth=$chartdiameter+20;  $chartheight=$chartdiameter+20+(($chartfontheight+2)*count($chartdata));  header("content-type:image/gif");  $image=imagecreate($chartwidth,$chartheight);  $colorbody =imagecolorallocate ($image,$colorbody[0],$colorbody[1],$colorbody[2]);  $colortext =imagecolorallocate ($image,$colortext[0],$colortext[1],$colortext[2]);  $colorborder =imagecolorallocate ($image,$colorborder[0],$colorborder[1],$colorborder[2]);  for ($i=0;$i  {  $t=imagecolorallocate($image,$colorslice[$i][0],$colorslice[$i][1],$colorslice[$i][2]);  $colorslice[$i]=$t;  }  for($i=0;$i  {  $charttotal+=$chartdata[$i];  }  $chartcenterx=$chartdiameter/2+10;  $chartcentery=$chartdiameter/2+10;  $degrees=0;  for($i=0;$i  {  $startdegrees=round($degrees);  $degrees+=(($chartdata[$i]/$charttotal)*360);  $enddegrees=round($degrees);  $currentcolor=$colorslice[$i%(count($colorslice))];  imagearc($image ,  $chartcenterx,  $chartcentery,  $chartdiameter,  $chartdiameter,  $startdegrees,  $enddegrees,  $currentcolor);  list($arcx,$arcy)=circle_point($startdegrees,$chartdiameter);  imageline($image,  $chartcenterx,  $chartcentery,  floor($chartcenterx+$arcx),  floor($chartcentery+$arcy),  $currentcolor );  list($arcx,$arcy)=circle_point($enddegrees,$chartdiameter); 
  imageline($image,  $chartcenterx,  $chartcentery,  ceil($chartcenterx+$arcx),  ceil($chartcentery +$arcy),  $currentcolor); 
  $midpoint=round((($enddegrees-$startdegrees)/2)+$startdegrees);  list($arcx,$arcy)= circle_point ( $midpoint, $chartdiameter/2);  imagefilltoborder($image,  floor($chartcenterx+$arcx),  floor($chartcentery+$arcy),  $currentcolor,  $currentcolor);  }  imagearc($image,  $chartcenterx,  $chartcentery,  $chartdiameter,  $chartdiameter,  0,360,  $colorborder);  imagefilltoborder ($image,  floor($chartcenterx +( $chartdiameter /2)+2),  $chartcentery ,  $colorborder,  $colorborder );  for ($i=0;$i  {  $currentcolor=$colorslice[$i%(count($colorslice))];  $liney=$chartdiameter+20+($i*($chartfontheight+2));  imagerectangle ($image,  10,  $liney,  20+$chartfontheight,  $liney+$chartfontheight,  $colorbody);  imagefilltoborder($image,  12,  $liney+2,  $colorbody,  $currentcolor);  imagestring($image,  $chartfont,  40+$chartfontheight,  $liney,  "$chartlabel[$i]:$chartdata[$i]",  $colortext); 
  } 
  imagegif ($image,$file); 
  } 
  function radians($degrees)  {  return($degrees*(pi()/180.0));  }  function circle_point($degrees,$diameter)  {  $x=cos(radians($degrees))*($diameter/2);  $y=sin(radians($degrees))*($diameter/2);  return (array($x,$y));  }  ?> 
  ###########  这是一个调用的例子  ########### 
  ??> include("bfunc.php3");  $chartdiameter=250;  $chartfont=5;  $d1=10;$d2=20;$d3=30;$d4=40;$d5=50;  $chartdata=array($d1,$d2,$d3,$d4,$d5);  $chartlabel=array("D1","D2","D3","D4","D5"); 
  $colorbody=array(0xff,0xff,0xff);  $colorborder=array(0x00,0x00,0x00);  $colortext=array(0xff,0xff,0xff); 
  $color1=array(0xff,0x00,0x00);  $color2=array(0x00,0xff,0x00);  $color3=array(0x00,0x00,0xff);  $color4=array(0xff,0xff,0x00);  $color5=array(0xff,0x00,0xff);  $colorslice=array($color1 ,$color2,$color3,$color4,$color5);  $file="tj.gif"  bimage($chartdata,  $chartfont,  $chartdiameter ,  $chartlabel ,  $colorslice,  $colorbody ,  $colorborder,  $colortext ,  $file )  ?> 
 
   
 |