php生成扇形比例图实例


Posted in PHP onNovember 06, 2013

我们在很多网站会看到一些图形的百分比显示图,像三个地区所占地多少或者是成绩等,给大家介绍一款用php生成的扇形比例百分比显示程序代码,不过使用它首先得有phpGD库支持。

<?php
//填充图表的参数
$ChartDiameter = 60; //图表直径
$ChartData = array(30,70);//用于生成图表的数据,可通过数据库来取得来确定也可以多个不过和颜色数组对应
//把角度转换为弧度
function radians($degrees){return($degrees*(pi()/180.0));}
//取得在圆心为(0,0)圆上 x,y点的值
function circle_point($degrees,$diameter){$x=cos(radians($degrees))*($diameter/2);$y=sin(radians($degrees))*($diameter/2);return (array($x,$y));}
//确定图形的大小
$ChartWidth = $ChartDiameter + 20;
$ChartHeight = $ChartDiameter + 20;
//确定统计的总数
$ChartTotal = “”;
for($index = 0;$index < count($ChartData);$index++){
$ChartTotal += $ChartData[$index];
}
$ChartCenterX = $ChartDiameter/2 + 10;
$ChartCenterY = $ChartDiameter/2 + 10;
//生成空白图形
$image = imagecreate($ChartWidth, $ChartHeight);
//分配颜色
$colorBody = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$colorBorder = imagecolorallocate($image, 0×00, 0×00, 0×00);
$colorText = imagecolorallocate($image, 0×00, 0×00, 0×00);
$colorSlice[] = imagecolorallocate($image, 0xFF, 0×00, 0×00);//这里是和你上面写的数组对应的颜色
$colorSlice[] = imagecolorallocate($image, 0×00, 0xFF, 0×00);
//填充背境
imagefill($image, 0, 0, $colorBody);
//画每一个扇形
$Degrees = 0;
for($index = 0; $index < count($ChartData); $index++){
$StartDegrees = round($Degrees);
$Degrees += (($ChartData[$index]/$ChartTotal)*360);
$EndDegrees = round($Degrees);
$CurrentColor = $colorSlice[$index%(count($colorSlice))];
//画图F
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);
}
//到此脚本 已经生了一幅图像的,现在需要的是把它发到浏览器上,重要的一点是要将标头发给浏览器,让它知道是一个GIF文件。不然的话你只能看到一堆奇怪的乱码
header(“Content-type: image/png”);
imagegif($image);
?>
 

PHP 相关文章推荐
PHP自动生成月历代码
Oct 09 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
PHP 地址栏信息的获取代码
Jan 07 PHP
php中的一些数组排序方法分享
Jul 20 PHP
关于PHP的curl开启问题探讨
Apr 08 PHP
PHP基于数组实现的分页函数实例
Aug 20 PHP
PHP分页类集锦
Nov 18 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
PHP文件缓存smarty模板应用实例分析
Feb 26 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
PHP实现考试倒计时功能代码
Apr 16 PHP
php多用户读写文件冲突的解决办法
Nov 06 #PHP
php生成图形(Libchart)实例
Nov 06 #PHP
php ZipArchive压缩函数详解实例
Nov 06 #PHP
php根据分类合并数组的方法实例详解
Nov 06 #PHP
php foreach循环中使用引用的问题
Nov 06 #PHP
php用正则表达式匹配中文实例详解
Nov 06 #PHP
php引用传值实例详解学习
Nov 06 #PHP
You might like
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
PHP目录操作实例总结
2016/09/27 PHP
PHP的PDO预处理语句与存储过程
2019/01/27 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
Python模拟百度登录实例详解
2016/01/20 Python
pandas object格式转float64格式的方法
2018/04/10 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
python dumps和loads区别详解
2020/02/04 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
社会公德演讲稿
2014/05/20 职场文书
优秀大学生自荐信
2014/06/09 职场文书
解除施工合同协议书
2014/10/17 职场文书
民主评议党员总结
2014/10/20 职场文书
党员民主评议总结
2014/10/20 职场文书
学生个人总结范文
2015/02/15 职场文书
班主任自我评价范文
2015/03/11 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书