php做饼图的函数-PHP代码-PHP教程-幽默笑话

  • 来源:本站
  • 发布时间:2019-07-05
  • 133已阅读
您现在的位置:首页 >> 情感小说 >> 文章
简介 文章内容php做饼图的函数修改时间:[2012/05/1602:02]阅读次数:[800]发表者:[起缘]再介绍一下我自己,呵呵我是个新手,当时学php纯粹是为了应付领导哦,让我们做统计图,我

php做饼图的函数-PHP代码-PHP教程-幽默笑话

文章内容php做饼图的函数修改时间:[2012/05/1602:02]阅读次数:[800]发表者:[起缘]再介绍一下我自己,呵呵我是个新手,当时学php纯粹是为了应付领导哦,让我们做统计图,我本来是学asp的,突然改行很不适应,不过php功能的确很强大呀,呵呵,我都离不了他了,这不,饼图,柱型图都搞定了,可是还有很多问题我不会,还希望大家多指教呀,说了好多废话了,我还以为是在写信那我的联系方式是:email:[emailprotected]http://老板催了,没办法,饼图函数出炉了,大家快抢呀################/*函数说明$chartdata:数据,是数组元素$chartfont:字号$chartdiameter:决定饼的大小(要看你饿不饿了,呵呵)$chartlabel:标题,也是数组元素$colorslice:颜色数组,例如$tmp=array255,255,255);$colorslic=array($tmp);$colorborder:边框颜色,数组$colortext:文本颜色,数组$colorbody:背景颜色,数组$file:输出图片文件名*/functionbimage($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);}functionradians($degrees){return($degrees*(pi()/));}functioncircle_point($degrees,$diameter){$x=cos(radians($degrees))*($diameter/2);$y=sin(radians($degrees))*($diameter/2);return(array($x,$y));}###########这是一个调用的例子###########include();$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=($chartdata,$chartfont,$chartdiameter,$chartlabel,$colorslice,$colorbody,$colorborder,$colortext,$file)。