The following about the PHP 3D pie chart Class drawing class function implementation principle is based on//ellipse long half axis and other parameters to draw a 3D pie graph code.
The following about PHP tutorial 3D pie Chart class function Implementation principle is based on//ellipse long half axis and other parameters to draw a 3D pie graphics code.
Class chart{
var $a; Elliptical Long Half axis
var $b; Elliptic Short Half axis
var $DataArray; Each sector of the data
var $ColorArray; The color of each sector is required to be written in hexadecimal but not 0x in front
Black for edges and shadows
Function chart ($pa =100, $pb =60, $sData = "100,200,300,400,500,300", $sColor = "EE00FF,DD0000,CCCCCC,CCFF00,00CCFF, Ccff00 ")
{
$this->a= $pa;
$this->b= $PB;
$this->dataarray=split (",", $sData);
$this->colorarray=split (",", $sColor);
}
function SetA ($v) {
$this->a= $v;
}
function Geta () {
return $this->a;
}
function Setb ($v) {
$this->b= $v;
}
function Getb () {
return $this->b;
}
function Setdataarray ($v) {
$this->dataarray=split (",", $v);
}
function Getdataarray ($v) {
return $this->dataarray;
}
function Setcolorarray ($v) {
$this->colorarray=split (",", $v);
}
function Getcolorarray () {
return $this->colorarray;
}
function Drawpie () {
$image =imagecreate ($this->a*2+40, $this->b*2+40);
$PieCenterX = $this->a+10;
$PieCenterY = $this->b+10;
$DoubleA = $this->a*2;
$DoubleB = $this->b*2;
List ($R, $G, $B) =getrgb (0);
$colorBorder =imagecolorallocate ($image, $R, $G, $B);
$DataNumber =count ($this->dataarray);
$DataTotal
for ($i =0; $i < $DataNumber; $i + +) $DataTotal + = $this->dataarray[$i]; Figure out the data and
Fill the back border
Imagefill ($image, 0, 0, imagecolorallocate ($image, 0xFF, 0xFF, 0xFF));
/*
* * Draw every fan
*/
$Degrees = 0;
for ($i = 0; $i < $DataNumber; $i + +) {
$StartDegrees = round ($Degrees);
$Degrees + = (($this->dataarray[$i]/$DataTotal) *360);
$EndDegrees = round ($Degrees);
$percent = Number_format ($this->dataarray[$i]/$DataTotal *100, 1);
List ($R, $G, $B) =getrgb (Hexdec ($this->colorarray[$i]));
$CurrentColor =imagecolorallocate ($image, $R, $G, $B);
if ($R >60 and $R <256) $R = $R-60;
if ($G >60 and $G <256) $G = $G-60;
if ($B >60 and $B <256) $B = $B-60;
$CurrentDarkColor =imagecolorallocate ($image, $R, $G, $B);
Draw a fan arc
Imagearc ($image, $PieCenterX, $PieCenterY, $DoubleA, $DoubleB, $StartDegrees, $EndDegrees, $CurrentColor);
Draw a line
List ($ArcX, $ArcY) = Pie_point ($StartDegrees, $this->a, $this->b);
Imageline ($image, $PieCenterX, $PieCenterY, floor ($PieCenterX + $ArcX), floor ($PieCenterY + $ArcY), $CurrentColor);
Draw a line
List ($ArcX, $ArcY) = Pie_point ($EndDegrees, $this->a, $this->b);
Imageline ($image, $PieCenterX, $PieCenterY, ceil ($PieCenterX + $ArcX), ceil ($PieCenterY + $ArcY), $CurrentColor);
Fill sector
$MidPoint = Round ((($EndDegrees-$StartDegrees)/2) + $StartDegrees);
List ($ArcX, $ArcY) = Pie_point ($MidPoint, $this->A*3/4, $this->B*3/4);
Imagefilltoborder ($image, floor ($PieCenterX + $ArcX), floor ($PieCenterY + $ArcY), $CurrentColor, $CurrentColor);
Imagestring ($image, 2,floor ($PieCenterX + $ArcX-5), Floor ($PieCenterY + $ArcY-5), $percent. " % ", $colorBorder);
Draw Shadows
if ($StartDegrees >=0 and $StartDegrees <=180) {
if ($EndDegrees <=180) {
for ($k = 1; $k < $k + +)
Imagearc ($image, $PieCenterX, $PieCenterY + $k, $DoubleA, $DoubleB, $StartDegrees, $EndDegrees, $CurrentDarkColor);
}else{
for ($k = 1; $k < $k + +)
Imagearc ($image, $PieCenterX, $PieCenterY + $k, $DoubleA, $DoubleB, $StartDegrees, and $CurrentDarkColor);
}
}
}
/* This script has already had an image.
* * What is needed now is to send it to the browser, it is important to put the hair to the browser, let it know is a GIF file. Otherwise, you can only see a bunch of weird gibberish.
*/
Output the resulting picture
Header ("Content-type:image/gif");
Imagegif ($image);
Imagedestroy ($image);
}//end Drawpie ()
}//end class
Realize
$OBJP = new chart ();
$OBJP->drawpie ();
http://www.bkjia.com/PHPjc/633048.html www.bkjia.com true http://www.bkjia.com/PHPjc/633048.html techarticle the following about the PHP 3D pie chart Class drawing class function implementation principle is based on//ellipse long half axis and other parameters to draw a 3D pie graph code. The following about PHP tutorial 3D pie chart Class drawing class function implementation of the original ...