PHP画矩形,椭圆,圆,画椭圆弧 ,饼状图

1:画矩形:

imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $col )

imagerectangle()col 颜色在 image 图像中画一个矩形,其左上角坐标为 x1, y1,右下角坐标为 x2, y2。图像的左上角坐标为 0, 0。

2:画椭圆:

imageellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color )

cx中间的 X 坐标。cy中间的 Y 坐标。width椭圆的宽度。height椭圆的高度。color椭圆的颜色。

3:画椭圆弧:

imagearc ( resource $image , int $cx , int $cy , int $w , int $h , int $s , int $e , int $color )(即在椭圆中截取一定的弧度)

imagearc()cxcy(图像左上角为 0, 0)为中心在 image 所代表的图像中画一个椭圆弧。wh 分别指定了椭圆的宽度和高度,起始和结束点以 se 参数以角度指定。0°位于三点钟位置,以顺时针方向绘画。

4:画饼状图:先循环画多个圆心在一条直线上的椭圆并填充

1 for($i=100;$i>50;$i--){
2 imagefilledarc($image, 150, $i, 150, 100, 0, 270, $gray,IMG_ARC_EDGED );
3 }

imagefilledarc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color , int $style )

cx:中间的 x 坐标。cy:中间的 y 坐标。width:椭圆弧的宽度。height:椭圆弧的高度。start:起点角度。end:终点角度。 0°color:颜色标识符。

style:

  1. IMG_ARC_PIE  :则产生圆形边界并填充
  2. IMG_ARC_CHORD :只是用直线连接了起始和结束点并填充
  3. IMG_ARC_NOFILL:则产生圆形边界不填充
  4. IMG_ARC_EDGED:指明用直线将起始和结束点与中心点相连

简单事例:

前台代码:

 1 <div style="width:300px;height:400px;border:1px solid gray;margin:auto;">
 2 <h2 style="text-align:center">全校学生分布统计</h2>
 3 <center>
 4     <form action="11Pro.php" method="post">
 5             安徽:<input type="text" name="anhui"><br/>
 6             浙江:<input type="text" name="zhejiang"><br/>
 7             吉林:<input type="text" name="jilin"><br/>
 8             北京:<input type="text" name="beijing"><br/><br/>
 9             <input style="width:160px;" type="submit" value="生成饼状图"><br/>
10             <input style="width:160px;" type="reset" value="重置">
11     </form>
12 </center>
13 </div>

前台界面:

后台PHP代码:

 1 <?php
 2
 3 //创建画布
 4 $image=imagecreatetruecolor(200,200);
 5
 6
 7 //定义颜色
 8 $red=imagecolorallocate($image, 255, 0, 0);
 9 $darkred=imagecolorallocate($image, 102, 0, 0);
10
11 $blue=imagecolorallocate($image, 0, 0, 255);
12 $darkblue=imagecolorallocate($image, 0, 51, 102);;
13
14
15 $green=imagecolorallocate($image, 0, 255, 0);
16 $darkgreen=imagecolorallocate($image, 51, 102, 51);
17
18 $gray=imagecolorallocate($image, 125, 125, 125);
19 $darkgray=imagecolorallocate($image, 102, 102, 102);
20
21 $anhui=$_POST[‘anhui‘];
22 $jilin=$_POST[‘jilin‘];
23 $beijing=$_POST[‘beijing‘];
24 $zhejiang=$_POST[‘zhejiang‘];
25
26 $count=$anhui+$beijing+$jilin+$zhejiang;
27
28 //循环画饼状图
29 for($i=100;$i>85;$i--){
30     imagefilledarc($image, 100, $i, 150, 100, 0, ($anhui/$count)*360, $darkgray, IMG_ARC_PIE);
31     imagefilledarc($image, 100, $i, 150, 100, ($anhui/$count)*360, (($anhui+$jilin)/$count)*360, $darkblue, IMG_ARC_PIE);
32     imagefilledarc($image, 100, $i, 150, 100, (($anhui+$jilin)/$count)*360, (($anhui+$jilin+$beijing)/$count)*360, $darkgreen, IMG_ARC_PIE);
33     imagefilledarc($image, 100, $i, 150, 100, (($anhui+$jilin+$beijing)/$count)*360, 360, $darkred, IMG_ARC_PIE);
34 }
35 imagefilledarc($image, 100, 85, 150, 100, 0, ($anhui/$count)*360, $gray, IMG_ARC_PIE);
36 imagefilledarc($image, 100, 85, 150, 100, ($anhui/$count)*360, (($anhui+$jilin)/$count)*360, $blue, IMG_ARC_PIE);
37 imagefilledarc($image, 100, 85, 150, 100, (($anhui+$jilin)/$count)*360, (($anhui+$jilin+$beijing)/$count)*360, $green, IMG_ARC_PIE);
38 imagefilledarc($image, 100, 85, 150, 100, (($anhui+$jilin+$beijing)/$count)*360, 360, $red, IMG_ARC_PIE);
39
40 header("Content-type: image/png");
41
42 imagepng($image);
43
44 imagedestroy($image);
45
46 ?>

后台处理结果:

时间: 2024-10-12 22:36:35

PHP画矩形,椭圆,圆,画椭圆弧 ,饼状图的相关文章

Excel数据可视化应用(直方图、折线图、饼状图)

直方图:对比关系 直方图是一种统计报告图,是表示资料变化情况的主要工具.直方图由一系列高度不等的的纵向条纹或线段表示数据分布的情况.一般用横轴表示数据类型,纵轴表示分布情况. 例1: 1.右键单击图表的纵坐标轴数据,选择“设置坐标轴格式”命令打开窗格,在“坐标轴选项”下,各类数据设置如下: 2.右键单击图例,选择设置图例格式,选择靠上(或点击图表空白处,点击上方图表工具中的设计,选择下方左侧的“添加图表元素”,选择“图例”.“顶部”) 3.右键单击任一直条(单击一下会自动选择全部直条),选择“添

Quartz2d 画饼状图 图形上下文栈 矩阵操作 裁剪圆角图片

画饼状图 - (void)drawRect:(CGRect)rect { // Drawing code // 需求:根据sections的数据,绘制多个扇形 // 1.获取上下文(Layer Graphics Context) CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.根据sections的个数,计算扇形的起始和结束位置来画扇形 NSInteger count = self.sections.count; // 如果没有数据,

canvas+js画饼状图

效果: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>饼状图</title> </head> <body> <canvas id="canvas"></canvas> <script> (function () {

[控件] 画饼状图的控件

画饼状图的控件 效果 注意:支持遮罩效果 源码 https://github.com/YouXianMing/CircleView // // CircleView.h // YXMWeather // // Created by XianMingYou on 15/5/12. // Copyright (c) 2015年 XianMingYou. All rights reserved. // #import <UIKit/UIKit.h> @interface CircleView : U

android圆饼状图中怎么设置百分比

============问题描述============ 我希望设置成能显示百分数的,如下图 这是我画饼状图的方法,我想给我一点思路 public void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint) ============解决方案1============ http://www.2cto.com/kf/201402/278932.html ===========

使用JS charts来画图表(二)——饼状图

如上是一个饼状图: 代码如下: <html> <head> <title>部门管理</title> <script type="text/javascript" src="codebase/jscharts.js"></script> </head> <body> <div id="graph">Loading graph...</d

PHP实现动态生成饼状图 (转载)

<?php //变量定义,画椭圆弧时的角度大小 define("ANGLELENGTH", 10); /** * 绘制图片 * @param $title 3D图的标题 * @param $dataArr 显示的数据数组 * @param $labelArr 对应数据的标签分类数组 * @param $colorArr 对应绘图颜色的数组 * @param $a 画布的基准宽度 * @param $b 画布的基准高度 * @param $v 3D柱的高度 * @param $fo

iOS:使用贝塞尔曲线绘制图表(折线图、柱状图、饼状图)

1.介绍: UIBezierPath :画贝塞尔曲线的path类 UIBezierPath定义 : 贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度. 曲线的定义有四个点:起始点.终止点(也称锚点)以及两个相互分离的中间点. 滑动两个中间点,贝塞尔曲线的形状会发生变化. UIBezierPath :对象是CGPathRef数据类型的封装,可以方便的让我们画出 矩形 . 椭圆 或者 直线和曲线的组合形状 初始化方法: + (instancetype)bezierPath; /

绘制matplotlib 饼状图

参考:https://blog.csdn.net/ScarlettYellow/article/details/80458797 (2)2016年就业人员在三次产业中分布的饼状图. def swap(list): date = [] name = [] for i in range(0,len(list)): date.append(list[i][1]) name.append(list[i][0]) return date, name def fun2(): # 构造数据 industry3