当前位置:首页 > PHP教程 > php图像处理 > 列表

打造超酷的PHP数据饼图

发布:smiling 来源: PHP粉丝网  添加日期:2013-11-13 21:00:40 浏览: 评论:0 

  1.  
  2. 源代码:  
  3. //+------------------------+  
  4. //| pie3dfun.PHP//公用函数 |  
  5. //+------------------------+  
  6. define("ANGLE_STEP", 5); //定义画椭圆弧时的角度步长  
  7. function draw_getdarkcolor($img,$clr//求$clr对应的暗色  
  8. {  
  9. $rgb = imagecolorsforindex($img,$clr);  
  10. return array($rgb["red"]/2,$rgb["green"]/2,$rgb["blue"]/2);  
  11. }  
  12. function draw_getexy($a$b$d//求角度$d对应的椭圆上的点坐标  
  13. {  
  14. $d = deg2rad($d);  
  15. return array(round($a*Cos($d)), round($b*Sin($d)));  
  16. }  
  17. function draw_arc($img,$ox,$oy,$a,$b,$sd,$ed,$clr//椭圆弧函数  
  18. {  
  19. $n = ceil(($ed-$sd)/ANGLE_STEP);  
  20. $d = $sd;  
  21. list($x0,$y0) = draw_getexy($a,$b,$d);  
  22. for($i=0; $i<$n$i++)  
  23. {  
  24. $d = ($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);  
  25. list($x$y) = draw_getexy($a$b$d);  
  26. imageline($img$x0+$ox$y0+$oy$x+$ox$y+$oy$clr);  
  27. $x0 = $x;  
  28. $y0 = $y;  
  29. }  
  30. }  
  31. function draw_sector($img$ox$oy$a$b$sd$ed$clr//画扇面  
  32. {  
  33. $n = ceil(($ed-$sd)/ANGLE_STEP);  
  34. $d = $sd;  
  35. list($x0,$y0) = draw_getexy($a$b$d);  
  36. imageline($img$x0+$ox$y0+$oy$ox$oy$clr);  
  37. for($i=0; $i<$n$i++)  
  38. {  
  39. $d = ($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);  
  40. list($x$y) = draw_getexy($a$b$d);  
  41. imageline($img$x0+$ox$y0+$oy$x+$ox$y+$oy$clr);  
  42. $x0 = $x;  
  43. $y0 = $y;  
  44. }  
  45. imageline($img$x0+$ox$y0+$oy$ox$oy$clr);  
  46. list($x$y) = draw_getexy($a/2, $b/2, ($d+$sd)/2);  
  47. imagefill($img$x+$ox$y+$oy$clr);  

Tags: PHP数据饼图 PHP画图

分享到: