饼状图
<?php
	$array=$_POST['array'];											//接收所有的值并存入数组$array中
	$options=array('伙食','住房','交通','通信','其他');				//定义存放选项的数组$options
	$image=imagecreatetruecolor(400,400);
	imagefill($image,0,0, imagecolorallocate($image,255,255,255));	//背景颜色设为白色
	$black=imagecolorallocate($image,0,0,0);
	$x=200;$y=200;													//圆心的坐标
	$w=360;$h=360;													//圆的宽和高,即半径为180
	$i=0;															//存放初始角度为0,在3点钟位置
	$sum=0;															//存放总数据量
	$temp=0;
	$font="C:/Windows/Fonts/simfang.ttf";							//字体文件,仿宋体
	foreach($array as $value)
	{
		$sum=$sum+$value;											//计算总数据量
	}
	for($k=0;$k<count($array);$k++)									//遍历数组$array
	{
		$temp=$temp+$array[$k];										//中间数据
		//圆盘中的每条分界线所在的角度赋到数组$points中
		$points[$k]=($temp/$sum)*360;			
		$percent[$k]=number_format(($array[$k]/$sum)*100,1);		//计算每组数据占总数据的百分比
		if($k==0)
		{
			//如果是数组$array的第一组数据
			$startdegrees=$i;										//起始角度设为0
			$enddegrees=$points[$k];								//终点角度为第一条分界线所在角度
		}
		else
		{
			//如果不是数组$array的第一组数据
			$startdegrees=$points[$k-1];							//起始角度为前一条分界线的角度
			$enddegrees=$points[$k];								//终点角度为下一条分界线的角度
		}
		$midpoints=$startdegrees+($enddegrees-$startdegrees)/2;		//计算画出的扇形中心线所在角度
		$radian=$midpoints*pi()/180;								//将角度转化为弧度
		//随机产生颜色
		$color=imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255));	
		//使用随机颜色画圆弧
		imagefilledarc($image, $x, $y, $w, $h, $i, $points[$k], $color, IMG_ARC_PIE);		
		//对要在圆盘中输入的中文进行编码
//$codetext=iconv("GB2312","UTF-8",$options[$k].$percent[$k]."%");
$codetext=iconv("UTF-8","UTF-8",$options[$k].$percent[$k]."%");
		if($midpoints>=90&&$midpoints<=270)
		{
			//如果中心线处于左半圆则从中心线3/4处的点开始输入
			$mid_x=(cos($radian)*$w/2)*3/4+$x;	
			$mid_y=(sin($radian)*$h/2)*3/4+$y;
			$angle=180-$midpoints;									//文字的偏斜角度
		}
		else
		{
			//如果中心线处于右半圆则从中心线1/2处的点开始输入
			$mid_x=(cos($radian)*$w/2)/2+$x;		
			$mid_y=(sin($radian)*$h/2)/2+$y;
			$angle=360-$midpoints;
		}
		//在圆盘的扇形中以角度$angle输入$codetext中的内容
		imagettftext($image, 12, $angle,$mid_x,$mid_y, $black, $font, $codetext);	
		$i=$points[$k];												//重新定义起始角度
	}
	$file="../good/image/EX5_7.gif";								//定义一个文件名
	imagegif($image,$file);											//将图像保存为EX5_7.gif文件
	echo "<font face='黑体' size='5' color='blue'>生活费用百分比分布图:</font><br/>";
	echo "<img src=$file>";											//输出图片
	imagedestroy($image);
?>
2.建议使用流程图,梳理下该段程序。会更加易于阅读
https://www.processon.com/setting
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号