ホームページ >バックエンド開発 >PHPチュートリアル >円グラフを作成するPHP関数_PHPチュートリアル

円グラフを作成するPHP関数_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:20:40801ブラウズ

########
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、
$ color -border、
$ colortext
{
$ chartdiameter = 150; ;$d2=20;$d3=30;$d4=40;$d5=50;
$chartdata=array($d1,$d2,$d3,$d4,$d5); 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[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] ];
}
$chartcentery=$chartdiameter/2+10;
for($i=0;$i {
$startdegrees=round( $度);
$度+ =(($chartdata[$i]/$charttotal)*360);
$currentcolor=$colorslice[$i%($colorslice); )];
imagearc($ image , $chartcenterx,
$chartcentery,
$chartdiameter,
$chartdiameter,
$startdegrees,
$enddegrees,
$currentcolor); $startdegrees,$chartdiameter); imageline($image,
$chartcenterx,
$chartcentery,
floor($chartcentery+$arcy),
$currentcolor ); $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); 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 ); i=0;$i
{
$currentcolor=$colorslice[$i%(count($colorslice))]
$liney=$chartdiameter+20+($i*($chartfontheight+2)); ($image,
10,
$liney,
20+$chartfontheight,
$liney+$chartfontheight,
$colorbody); );
imagestring($image ,
$chartfont,
40+$chartfontheight,
$liney,
"$chartlabel[$i]:$chartdata[$i]",
$colortext); ($image,$file) ;

}

関数ラジアン($度) {
return($度*(pi()/180.0))
}
関数circle_point($度,$直径)
{
$x=cos(ラジアン($度))*($直径/2);
$y=sin(ラジアン($度))*($直径/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(0xff,0xff,0xff);
$color2=array(0xff,0xff,0xff); 0x00,0xff,0x00);
$color3=配列(0xff,0xff,0xff);
$colorslice= array($color1 ,$color2 ,$color3,$color4,$color5);
$file="tj.gif"
bimage($chartdata,
$chartfont,
$chartdiameter,
$chartlabel,
$colorslice,
) $colorbody、
$colorborder、
$colortext、
$file )
?>



www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/532564.html技術記事 ######## bimage.php3 ######## /* 関数の説明 $chartdata: 配列要素であるデータ $chartfont: フォント サイズ $chartdiameter: 円のサイズを決定します (依存します)お腹が空いているかどうかについて (笑) $chartlabel...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。