php扇形分布图,使用php绘制扇形分布图
首先创建一个表单提交的页面,并且使用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绘制扇形分布图相关推荐
- python绘制扇形代码_动态绘制扇形实例
/**** * DrawSectorTest * 动态绘制扇形实例(拖拽绘制) ****/ package fengzi.drawing { import flash.display.Shape; i ...
- android制作扇形进度条,canvas绘制扇形进度条
您的浏览器版本太老,不支持canvas,建议升级浏览器 24小时 您的浏览器版本太老,不支持canvas,建议升级浏览器 30分 function drawBingTu(canvasid,canvas ...
- 绘制扇形的多种方式,包括border-radius、clip裁剪显示、canvas原点变换等方式的详细理解及demo
对clip的理解: clip是对使用了该样式的元素进行裁剪显示.使用方法是rect (top, right, bottom, left) 其中参数top代表显示的区域上边界离该元素顶部border-t ...
- flash as3_vinson_01:绘制扇形
遇见一个绘制用户信息统计的扇形图项目,找到我晏哥留的一个方法,贴在这儿备用: /*** 绘制扇形* @param mc 承载扇形的对象* @param x 圆心角x* @param y 圆心角y* @ ...
- 用canvas画布绘制扇形和弧线
<title>用canvas画布绘制扇形和弧线</title> <style> .box{ width: 600px; margin: 0 auto; } < ...
- android编程绘制扇形,分析实现Android自定义View之扇形图
继承View基类,画了这样的扇形图 粗糙的样子^_^ 直接来步骤吧 1.分析 自定义View需要认真的分析下,里面还是会用到一些数学知识 首先是扇形该怎么表现 1. 扇形的外观是个圆弧,而且是围绕一个 ...
- 在pycharm中绘制正太分布图
文章目录 1.目标 2.代码 3.结果 1.目标 在pycharm中绘制正太分布图 2.代码 # @Project: zc # @Author: zc # @File name: distributi ...
- [Unity]利用Mesh在Unity中绘制扇形图片
背景 最近碰到个功能, 要画一个扇形图案, 如下图: 美术原图: 需求是这个图形跟随角色, 在角色背后, 并且每个角色的扇形角度可能不同. So, NGUI和UGUI很好用的FilledType是用不 ...
- [Unity][UGUI]绘制扇形图形
绘制扇形图形 的资料 参考资料 1,2 都比较完整 想到一种 使用 UGUI 创建 扇形 的方法 相关资料: 1. [Unity&特效]怎么画圆范围circle range技能指示器skill ...
最新文章
- CSS3 稳固而知新: 居中
- 2D图像转3D仅需5秒,特斯拉的自动驾驶技术有救了?
- 新功能:阿里云负载均衡SLB支持HTTPS虚拟主机功能(SNI)
- nginx之location匹配规则
- C++中输入输出的十六进制八进制
- MySQL的show processlist:正在运行的线程
- 5.7 随机采样最小二乘法
- android bool定义,android-R.bool
- [连载型] Neutron 系列 (15): OpenStack 是如何实现 Neutron 网络 和 Nova虚机 防火墙的...
- python 哈希表_数据结构-7 哈希表
- Android 开发 带图像的Toast提示
- Ubuntu18.04报错:Aborted (core dumped) (classes.jar.toc.tmp ) ninja: build stopped: subcommand failed解决
- windows系统vbs脚本 恶搞将系统搞崩 死机 以及解决
- 那些聪明人都是怎么提高情商的?
- PHP cookie和session的分析
- window新建文本快捷键
- 梯度消失和梯度爆炸原因,表现,解决方案
- 天津全国计算机等级考试考点,2018年下半年全国计算机等级考试报考简章及天津考点安排...
- org.apache.taglibs.standard.tlv.JstlXmlTLV scanned from multiple locations
- 语中最美的十大经典爱情句子
热门文章
- 微课|玩转Python轻松过二级(2.1.4节):列表、元组、字典、集合概述
- 微课|中学生可以这样学Python(2.3.3节):map()函数
- vue 项目加载顺序_如何提高Vue项目首页的加载速度
- java常规普氏分析法_人脸对齐:Procrustes analysis 普氏分析
- 计算机由简单的二进制阴阳,二进制之美,大道至简,二生万物!
- 哪三级分类java_技术汇总:第五章:使用angularjs做首页三级分类
- 学校如何搭建文件服务器,学校服务器搭建
- 桌面整理工具不显示文件夹_Win10桌面图标显示不正常变成了白色
- php定时器使用,PHP定时器的说明
- python沿中心线绘制矩形_间隙填充轮廓/线 - python