本节内容:

PHP GD库生成扇形比例图。

实现功能:

一些图形的百分比显示图,像三个地区所占地多少或成绩等。

这里分享一段php生成的扇形比例百分比显示程序代码,需要phpGD库支持。

代码:

复制代码 代码示例:

/**

* 生成扇形比例图

* 编辑:www.jbxue.com

*/

//填充图表的参数

$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生成扇形比例图的实例代码相关推荐

  1. 使用Vue动态生成form表单的实例代码

    具有数据收集.校验和提交功能的表单生成器,包含复选框.单选框.输入框.下拉选择框等元素以及,省市区三级联动,时间选择,日期选择,颜色选择,文件/图片上传功能,支持事件扩展. 欢迎大家star学习交流: ...

  2. oracle存储过程生成单号,Oracle生成单据编号存储过程的实例代码

    Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号. 可以参考以下存储过程 CREATE OR REPLACE procedure ...

  3. php柱状图html代码,html5生成柱状图(条形图)效果的实例代码

    下面小编就为大家分享一篇html5生成柱状图(条形图)效果的实例代码.小编觉得挺不错的,现在分享给大家,也给大家一个参考.一起跟随小编过来看看吧 XML/HTML Code复制内容到剪贴板 (func ...

  4. oracle存储过程插入自动编号,Oracle生成单据编号存储过程的实例代码

    Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号. 可以参考以下存储过程 0 then if DIsAutoCreate=1 TH ...

  5. 如何在html中自动生成条形图,html5生成柱状图(条形图)效果的实例代码

    XML/HTML Code复制内容到剪贴板 (function (){ window.addEventListener("load", function(){ var data = ...

  6. python生成日历_Python创建日历实例代码

    Python创建日历的方法 以下代码不使用Python提供的calendar实现. 此程序在windows下测试通过,由于python字符编码直接输出给操作系统,so win下以gbk ansi为准, ...

  7. B型超声设备图像处理:用二维数据生成扇形图像

    昨晚,有同学私信咨询:如何将矩形数据转为扇扫图像?面对这个问题,我也是一脸懵逼,什么是扇扫?矩形数据又是啥?细问之下,才知道这是B型超声设备的数据处理问题.B超输出的数据保存在一个二维数组中,但显示在 ...

  8. python transformer category_Python 生成VOC格式的标签实例

    常用目标检测模型基本都是读取的PASCAL VOC格式的标签,下面代码用于生成VOC格式的代码,根据需要修改即可: from lxml import etree, objectify def gen_ ...

  9. python 根据判断产生新列_pandas DataFrame 根据多列的值做判断,生成新的列值实例...

    环境:Python3.6.4 + pandas 0.22 主要是DataFrame.apply函数的应用,如果设置axis参数为1则每次函数每次会取出DataFrame的一行来做处理,如果axis为1 ...

最新文章

  1. 儿子转眼就长大:Hinton、LeCun、Bengio 口述神经网络简史
  2. 一个有第三方ebuild的网站
  3. Python3引号创建字符串
  4. 大型企业网络配置系列课程详解(第一版)发布
  5. JQuery中的.attr()与.removeAttr()
  6. C++实现顺序串(完整代码)
  7. 华为云瑶光:打通云边端界限,为企业云上业务带来最优解
  8. python循环顶帖_python中的循环
  9. android命名管道创建使用
  10. 字节跳动算法工程师总结:java资料文件
  11. 谷歌浏览器禁止右滑返回历史_早报:拼多多加大百亿补贴力度;嫦娥五号择机返回地球;贾跃亭再成被执行人;微信订阅号页面改版...
  12. 软考中级网络工程师-第一章计算机网络概论(自我学习)
  13. 弘辽科技:直通车引流逻辑。
  14. sqlyog连接mysql错误码2058
  15. mysql myisam转innodb_转:MySQL从MyISAM引擎转换到InnoDB引擎需要注意的地方
  16. 微信小程序-店内点餐小程序
  17. 【Java虚拟机】第一章、Java虚拟机是如何产生的
  18. 【最新】CUDA Toolkit版本及可用PyTorch对应关系(参考官网)
  19. Java 程序员开发常用的工具(全)
  20. 【多校训练】2021牛客多校第二场

热门文章

  1. Linux的#和$区别
  2. 循环所有数据库执行脚本
  3. hadoop loadBalance源码分析
  4. SQL语言的事务机制_转摘
  5. 发现很多人的基础都不好
  6. 282. Expression Add Operators
  7. 数据结构六——堆的应用
  8. array专题2---理解暴力枚举与动态规划
  9. 力扣:组合总和 II DFS剪枝
  10. macos php无法访问,Mac上,Apache启动正常,却无法访问localhost和127.0.0.1