PHP画饼状图

PHP画饼状图实例一

$img = imagecreatetruecolor(500, 500);
$white = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 11, 11, $white);

for($i=0; $i<50; $i++){
$red = imagecolorallocate($img, 255-$i*2, 0, 0);
imagefilledarc($img, 300, 300-$i, 400, 100, 180, -50, $red, IMG_ARC_PIE);
}
header("content-type:image/png");
imagepng($img);
imagedestroy($img);

PHP画分割饼状图实例二

<?php $img = imagecreatetruecolor(500, 500);
imagefill($img, 0, 0, imagecolorallocate($img, 255, 255, 255));
for($i=0; $i<20; $i++){
$color1 = imagecolorallocate($img, 150+$i*5, 0, 0);
$color2 = imagecolorallocate($img, 0, 150+$i*5, 0);
$color3 = imagecolorallocate($img, 0, 0, 150+$i*5);
imagefilledarc($img, 250, 250-$i, 200, 80, 0, 60, $color1, IMG_ARC_PIE);
imagefilledarc($img, 250, 250-$i, 200, 80, 60, 160, $color2, IMG_ARC_PIE);
imagefilledarc($img, 250, 250-$i, 200, 80, 160, 360, $color3, IMG_ARC_PIE);

}
header("content-type:image/png");
imagepng($img);
imagedestroy($img); ?>

知识点:

* imagefill (php3 php4 php5)  区域填充  

bool    imagefill(resource image, int x, int y, int color)

在image图像坐标的 X Y 用color颜色执行区域填充,X Y点颜色相同且相邻点都会被填充

* imagefilledarc

bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style )

imagefilledarc()image 所代表的图像中以 cxcy(图像左上角为 0, 0)画一椭圆弧。如果成功则返回 TRUE,失败则返回 FALSEwh 分别指定了椭圆的宽和高,se 参数以角度指定了起始和结束点。style 可以是下列值按位或(OR)后的值:

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED

IMG_ARC_PIEIMG_ARC_CHORD 是互斥的;IMG_ARC_CHORD 只是用直线连接了起始和结束点,IMG_ARC_PIE 则产生圆形边界(如果两个都用,IMG_ARC_CHORD 生效)。IMG_ARC_NOFILL 指明弧或弦只有轮廓,不填充。IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连,和 IMG_ARC_NOFILL 一起使用是画饼状图轮廓的好方法(而不用填充)。

Posted in PHP