首先创建一个表单提交的页面,并且使用session会话的方式,将表单提交的值保存到session会话中,表单页面的代码我就不写了,获取到值以后对数据进行处理,然后绘制成图:

具体绘制与数据处理代码:

session_start();

//将保存在session会话中值提取出来,保存到szz数组中

$sz =

array(@$_SESSION['zs'],@$_SESSION['ls'],@$_SESSION['le'],@$_SESSION['ld'],@$_SESSION['ww']);

//创建画布

$im =

imagecreatetruecolor(400, 400);

//创建五个颜色,用于每个扇形区域

$a =

imagecolorallocate($im, 255, 0, 0);

$b =

imagecolorallocate($im, 0, 255, 0);

$c =

imagecolorallocate($im, 0, 0, 255);

$d =

imagecolorallocate($im, 255, 255, 0);

$e =

imagecolorallocate($im, 255, 0, 255);

//创建一个黑色的颜色(根据需要使用其他颜色),用于扇形上文字的显示

$black =

imagecolorallocate($im, 0, 0, 0);

//将五个颜色保存到数组中

$ys =

array($a,$b,$c,$d,$e);

//定义一个变量,用于保存得到数据的总和

$sum = 0;

for($i = 0; $i

< 5; $i ++){

$sum += $sz[$i];

}

//将每个姓名保存到这个数组中

$tx =

array("张三","李四","刘二","刘大","王五");

//将每个用户所在的百分比保存到数组中

$bf =

array((int)($sz[0]/$sum*100),(int)($sz[1]/$sum*100),(int)($sz[2]/$sum*100),(int)($sz[3]/$sum*100),(int)($sz[4]/$sum*100));

$angle = 0;//扇形转动的角度

$temp = 0;

//保存每一个扇形区域中间位置的角度(相对于x正半轴)

for($i = 0; $i

< 5; $i ++){

//每循环一次就将当前扇形区域的中间角度保存

$temp = (($sz[$i]/$sum)*360)/2 + $angle;

//绘制扇形/圆/椭圆

//imagefilledarc(resource image,int cx,int cy,int width,int

height,int start,int end,int color,int style);

//参数说明:

//image:上面创建的画布对象

//cx、cy:圆心坐标

//width、height:水平距离,垂直距离,当这两个值相同时为圆,不同是为椭圆

//start、end:绘制的开始角度,绘制的结束角度(按顺时钟绘制,开始位置是x轴的正半轴)

//color:颜色(也可以是绘制线的颜色,也可以是填充色,看最后一个属性)

imagefilledarc($im,200,200,300,300,$angle,$angle

+ ($sz[$i]/$sum)*360,$ys[$i],IMG_ARC_PIE);

//图片上面的字体

//imagettftext(resource image,float size,float

angle,int x,int y,int color,string font_file,string text);

//参数说明:

//image:上面创建的画布对象

//size:字体大小

//angle:转动的角度(按逆时针旋转)

//x、y:字体显示的左上角坐标

//color:文字颜色

//font_file:文字样式的路径(一般在电脑C磁盘下的windows下的font文件夹下)

//text:显示的文本

imagettftext($im, 15, -($temp), 200 +

50*cos($temp/180*pi()), 150 + 50*sin($temp/180*pi()), $black,

"C:/Windows/Fonts/simkai.ttf", $tx[$i]." ".$bf[$i]."%");

$angle += ($sz[$i]/$sum)*360;

}

header('content-type:image/jpeg');

imagejpeg($im);

效果图:

填写图片摘要(选填)

效果图:

php扇形分布图,使用php绘制扇形分布图相关推荐

  1. python绘制扇形代码_动态绘制扇形实例

    /**** * DrawSectorTest * 动态绘制扇形实例(拖拽绘制) ****/ package fengzi.drawing { import flash.display.Shape; i ...

  2. android制作扇形进度条,canvas绘制扇形进度条

    您的浏览器版本太老,不支持canvas,建议升级浏览器 24小时 您的浏览器版本太老,不支持canvas,建议升级浏览器 30分 function drawBingTu(canvasid,canvas ...

  3. 绘制扇形的多种方式,包括border-radius、clip裁剪显示、canvas原点变换等方式的详细理解及demo

    对clip的理解: clip是对使用了该样式的元素进行裁剪显示.使用方法是rect (top, right, bottom, left) 其中参数top代表显示的区域上边界离该元素顶部border-t ...

  4. flash as3_vinson_01:绘制扇形

    遇见一个绘制用户信息统计的扇形图项目,找到我晏哥留的一个方法,贴在这儿备用: /*** 绘制扇形* @param mc 承载扇形的对象* @param x 圆心角x* @param y 圆心角y* @ ...

  5. 用canvas画布绘制扇形和弧线

    <title>用canvas画布绘制扇形和弧线</title> <style> .box{ width: 600px; margin: 0 auto; } < ...

  6. android编程绘制扇形,分析实现Android自定义View之扇形图

    继承View基类,画了这样的扇形图 粗糙的样子^_^ 直接来步骤吧 1.分析 自定义View需要认真的分析下,里面还是会用到一些数学知识 首先是扇形该怎么表现 1. 扇形的外观是个圆弧,而且是围绕一个 ...

  7. 在pycharm中绘制正太分布图

    文章目录 1.目标 2.代码 3.结果 1.目标 在pycharm中绘制正太分布图 2.代码 # @Project: zc # @Author: zc # @File name: distributi ...

  8. [Unity]利用Mesh在Unity中绘制扇形图片

    背景 最近碰到个功能, 要画一个扇形图案, 如下图: 美术原图: 需求是这个图形跟随角色, 在角色背后, 并且每个角色的扇形角度可能不同. So, NGUI和UGUI很好用的FilledType是用不 ...

  9. [Unity][UGUI]绘制扇形图形

    绘制扇形图形 的资料 参考资料 1,2 都比较完整 想到一种 使用 UGUI 创建 扇形 的方法 相关资料: 1. [Unity&特效]怎么画圆范围circle range技能指示器skill ...

最新文章

  1. CSS3 稳固而知新: 居中
  2. 2D图像转3D仅需5秒,特斯拉的自动驾驶技术有救了?
  3. 新功能:阿里云负载均衡SLB支持HTTPS虚拟主机功能(SNI)
  4. nginx之location匹配规则
  5. C++中输入输出的十六进制八进制
  6. MySQL的show processlist:正在运行的线程
  7. 5.7 随机采样最小二乘法
  8. android bool定义,android-R.bool
  9. [连载型] Neutron 系列 (15): OpenStack 是如何实现 Neutron 网络 和 Nova虚机 防火墙的...
  10. python 哈希表_数据结构-7 哈希表
  11. Android 开发 带图像的Toast提示
  12. Ubuntu18.04报错:Aborted (core dumped) (classes.jar.toc.tmp ) ninja: build stopped: subcommand failed解决
  13. windows系统vbs脚本 恶搞将系统搞崩 死机 以及解决
  14. 那些聪明人都是怎么提高情商的?
  15. PHP cookie和session的分析
  16. window新建文本快捷键
  17. 梯度消失和梯度爆炸原因,表现,解决方案
  18. 天津全国计算机等级考试考点,2018年下半年全国计算机等级考试报考简章及天津考点安排...
  19. org.apache.taglibs.standard.tlv.JstlXmlTLV scanned from multiple locations
  20. 语中最美的十大经典爱情句子

热门文章

  1. 微课|玩转Python轻松过二级(2.1.4节):列表、元组、字典、集合概述
  2. 微课|中学生可以这样学Python(2.3.3节):map()函数
  3. vue 项目加载顺序_如何提高Vue项目首页的加载速度
  4. java常规普氏分析法_人脸对齐:Procrustes analysis 普氏分析
  5. 计算机由简单的二进制阴阳,二进制之美,大道至简,二生万物!
  6. 哪三级分类java_技术汇总:第五章:使用angularjs做首页三级分类
  7. 学校如何搭建文件服务器,学校服务器搭建
  8. 桌面整理工具不显示文件夹_Win10桌面图标显示不正常变成了白色
  9. php定时器使用,PHP定时器的说明
  10. python沿中心线绘制矩形_间隙填充轮廓/线 - python