龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php画饼图代码

时间:2014-06-26 15:17来源:网络整理 作者:网络 点击:
分享到:
php画饼图代码 ```phplt;? function roundoff ($v) { if ( $v - floor($v) gt;= 0.5) { return(ceil($v)); } else { return(floor($v)); } } function get_xy_factors ($d
<? 

function roundoff ($v) {  
    if ( $v - floor($v) >= 0.5) {  
      return(ceil($v));  
    } else {  
      return(floor($v));  
    }  
  }  

function get_xy_factors ($degrees) {  
    $x = cos((3.1415926* $degrees) / doubleval(180));  
    $y = sin((3.1415926* $degrees) / doubleval(180));  
    return (array($x, $y));  
  }  

function draw_pie($id,$rx,$ry,$r,$from,$to,$color) { 

    ImageArc($id, $rx, $ry, $r, $r, $from, $to, $color); 

    $axy2 = get_xy_factors($from);  
    $ax2 = floor($rx + ($axy2[0] * $r / 2));  
    $ay2 = floor($ry + ($axy2[1] * $r / 2));  
    ImageLine($id, $rx, $ry, $ax2, $ay2, $color);  

    $bxy2 = get_xy_factors($to);  
    $bx2 = ceil($rx + ($bxy2[0] * $r / 2));   
    $by2 = ceil($ry + ($bxy2[1] * $r / 2));  
    ImageLine($id, $rx, $ry, $bx2, $by2, $color);  

    $xy2 = get_xy_factors((($to - $from) / 2) + $from);  
    $x2 = floor($rx + ($xy2[0] * $r /3));  
    $y2 = floor($ry + ($xy2[1] * $r /3));  
    ImageFilltoborder($id, $x2, $y2, $color, $color);     
} 

function draw_legends($id,$lex,$ley,$ler,$les,$color,$balack) { 

   ImageFilledRectangle($id, $lex, $ley, $lex+$ler, $ley+$ler, $color);  
   ImageRectangle($id, $lex, $ley, $lex+$ler, $ley+$ler,$balack); 
   ImageString($id, 3, $lex+$ler+5, $ley, $les, $color); 

} 

function display($a,$num) { 

 $id = imagecreate(600,400); 

 $angle=30; 

 $rx=120; 
 $ry=130; 

 $r=120; 

 $color = ImageColorAllocate($id, 255, 255, 255); 
 $balack = ImageColorAllocate($id, 0, 0, 0); 

/*              */ 
 $colors=array(ImageColorAllocate($id, 255, 0, 0), 
              ImageColorAllocate($id, 0, 255, 0), 
              ImageColorAllocate($id, 0, 0, 255), 
              ImageColorAllocate($id, 0, 255, 255), 
              ImageColorAllocate($id, 255, 0, 255)); 

 $les=array( "choice 1", "choice 2", "choice 3", "choice 4", "choice 5"); 
/*              */ 

 $lex=210; 
 $ley=50; 
 $ler=13; 

 $sum=0; 
 for($i=0;$i<$num;$i++) 
  $sum=$sum+$a[$i]; 

 $from=$angle; 
 $to=$from+roundoff(360*$a[0]/$sum); 

 Imagerectangle($id, 0, 0, 440, 240, $colors[0]); 
 ImageString($id, 5, 180, 10,  "my test", $colors[0]); 

 for($i=0;$i<$num;$i++) { 
  $les[$i] .= sprintf(  " <%s",$a[$i]); 
  $les[$i] .= sprintf(  " (%.2f%%)", ($a[$i] * 100 / doubleval($sum)));  
  draw_legends($id,$lex,$ley,$ler,$les[$i],$colors[$i],$balack); 
  $ley=$ley+20; 
  } 

 for($i=0;$i<$num;$i++) { 
  draw_pie($id,$rx,$ry,$r,$from,$to,$colors[$i]); 
  $from=$to+1; 
  $to=$from+roundoff(360*$a[$i+1]/$sum); 
 } 

 $tot= "TOTAL:"; 
 $tot .= sprintf(  " %s", $sum); 
 ImageString($id, 5, 210, 200,  $tot, $colors[0]); 

 Imagegif($id); 
 ImageDestroy($id);  
} 

Header( "Content-type: image/gif"); 

$a[0]=15; 
$a[1]=6; 
$a[2]=8; 
$a[3]=11; 
$a[4]=9; 

$num=5; 

display($a,$num); 

?> 

精彩图集

赞助商链接