Php is a pie chart function. ####### Bimage. php3 ######## * function description $ chartdata: data, which is an array element $ chartfont: Font Size $ chartdiameter: determines the size of the pie (depending on whether you are hungry, haha) $ chartlabel ########
Bimage. php3
########
/*
Function description
$ Chartdata: data, which is an array element
$ Chartfont: Font size
$ Chartdiameter: determines the size of the pie (it depends on whether you are hungry, huh, huh)
$ Chartlabel: Title, also an array element
$ Colorslice: color array, for example, $ tmp = array255, 255,255); $ colorslic = array ($ tmp );
$ Colorborder: Border color, array
$ Colortext: text color, array
$ Colorbody: background color, array
$ File: output image file name */
Function bimage ($ chartdata,
$ Chartfont,
$ Chartdiameter,
$ Chartlabel,
$ Colorslice,
$ Colorbody,
$ Colorborder,
$ Colortext,
$ File
)
{
$ Chartdiameter = 150;
$ Chartfontheight = imagefontheight ($ chartfont );
$ D1 = 10; $ d2 = 20; $ d3 = 30; $ d4 = 40; $ d5 = 50;
$ Chartdata = array ($ d1, $ d2, $ d3, $ d4, $ d5 );
$ Chartlabel = array ("D1", "D2", "D3", "D4", "D5 ");
$ Chartwidth = $ chartdiameter + 20;
$ Chartheight = $ chartdiameter + 20 + ($ chartfontheight + 2) * count ($ chartdata ));
Header ("content-type: image/gif ");
$ Image = imagecreate ($ chartwidth, $ chartheight );
$ Colorbody = imagecolorallocate ($ image, $ colorbody [0], $ colorbody [1], $ colorbody [2]);
$ Colortext = imagecolorallocate ($ image, $ colortext [0], $ colortext [1], $ colortext [2]);
$ Colorborder = imagecolorallocate ($ image, $ colorborder [0], $ colorborder [1], $ colorborder [2]);
For ($ I = 0; $ I {
$ T = imagecolorallocate ($ image, $ colorslice [$ I] [0], $ colorslice [$ I] [1], $ colorslice [$ I] [2]);
$ Colorslice [$ I] = $ t;
}
For ($ I = 0; $ I {
$ Charttotal + = $ chartdata [$ I];
}
$ Chartcenterx = $ chartdiameter/2 + 10;
$ Chartcentery = $ chartdiameter/2 + 10;
$ Degrees = 0;
For ($ I = 0; $ I {
$ Startdegrees = round ($ degrees );
$ Degrees + = ($ chartdata [$ I]/$ charttotal) * 360 );
$ Enddegrees = round ($ degrees );
$ Currentcolor = $ colorslice [$ I % (count ($ colorslice)];
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 );
}
Imagearc ($ image,
$ Chartcenterx,
$ Chartcentery,
$ Chartdiameter,
$ Chartdiameter,
0,360,
$ Colorborder );
Imagefilltoborder ($ image,
Floor ($ chartcenterx + ($ chartdiameter/2) + 2 ),
$ Chartcentery,
$ Colorborder,
$ Colorborder );
For ($ I = 0; $ I {
$ Currentcolor = $ colorslice [$ I % (count ($ colorslice)];
$ Liney = $ chartdiameter + 20 + ($ I * ($ chartfontheight + 2 ));
Imagerectangle ($ image,
10,
$ Liney,
20 + $ chartfontheight,
$ Liney + $ chartfontheight,
$ Colorbody );
Imagefilltoborder ($ image,
12,
$ Liney + 2,
$ Colorbody,
$ Currentcolor );
Imagestring ($ image,
$ Chartfont,
40 + $ chartfontheight,
$ Liney,
"$ Chartlabel [$ I]: $ chartdata [$ I]",
$ Colortext );
}
Imagegif ($ image, $ file );
}
Function radians ($ degrees)
{
Return ($ degrees * (pi ()/180.0 ));
}
Function circle_point ($ degrees, $ diameter)
{
$ X = cos (radians ($ degrees) * ($ diameter/2 );
$ Y = sin (radians ($ degrees) * ($ diameter/2 );
Return (array ($ x, $ y ));
}
?>
###########
This is an example of a call.
###########
Include ("bfunc. php3 ");
$ Chartdiameter = 250;
$ Chartfont = 5;
$ D1 = 10; $ d2 = 20; $ d3 = 30; $ d4 = 40; $ d5 = 50;
$ Chartdata = array ($ d1, $ d2, $ d3, $ d4, $ d5 );
$ Chartlabel = array ("D1", "D2", "D3", "D4", "D5 ");
$ Colorbody = array (0xff, 0xff, 0xff );
$ Colorborder = array (0x00,0x00,0x00 );
$ Colortext = array (0xff, 0xff, 0xff );
$ Color1 = array (0xff, 0x00,0x00 );
$ Color2 = array (0x00, 0xff, 0x00 );
$ Color3 = array (0x00,0x00, 0xff );
$ Color4 = array (0xff, 0xff, 0x00 );
$ Color5 = array (0xff, 0x00, 0xff );
$ Colorslice = array ($ color1, $ color2, $ color3, $ color4, $ color5 );
$ File = "tj.gif"
Bimage ($ chartdata,
$ Chartfont,
$ Chartdiameter,
$ Chartlabel,
$ Colorslice,
$ Colorbody,
$ Colorborder,
$ Colortext,
$ File)
?>
Http://www.bkjia.com/PHPjc/532564.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/532564.htmlTechArticle######## bimage. php3 ########/* function description $ chartdata: data, which is an array element $ chartfont: Font Size $ chartdiameter: determines the size of the pie (depending on whether you are hungry, haha) $ chartlabel...