Home  >  Article  >  Backend Development  >  Pokemon Dark Phantom cheat code php three-dimensional pie chart implementation code

Pokemon Dark Phantom cheat code php three-dimensional pie chart implementation code

WBOY
WBOYOriginal
2016-07-29 08:38:551856browse

After hard work, pie3d is completed, and the good stuff is shared with everyone. However, I am new to PHP and the code may not be refined enough. I hope everyone can give me some advice and work together to improve this program. Remember to notify me (estorm@yeah.net)
+------------------------+
| pie3dfun.php//Public function|
+- -----------------------+
define("ANGLE_STEP",5);//Define the angle step when drawing an elliptical arc
function chx_getdarkcolor($ img,$clr){//Find the dark color corresponding to $clr
$rgb=imagecolorsforindex($img,$clr);
return array($rgb["red"]/2,$rgb["green"]/2 ,$rgb["blue"]/2);
}
function chx_getexy($a,$b,$d){//Find the coordinates of the point on the ellipse corresponding to the angle $d
$d=deg2rad($d) ;
return array(round($a*Cos($d)),round($b*Sin($d)));
}
function chx_arc($img,$ox,$oy,$a,$b ,$sd,$ed,$clr){//Elliptic arc function
$n=ceil(($ed-$sd)/ANGLE_STEP);
$d=$sd;
list($x0,$y0)= chx_getexy($a,$b,$d);
for($i=0;$i<$n;$i++){
$d=($d+ANGLE_STEP)>$ed?$ed:($ d+ANGLE_STEP);
list($x,$y)=chx_getexy($a,$b,$d);
imageline($img,$x0+$ox,$y0+$oy,$x+$ox,$y+ $oy,$clr);
$x0=$x;
$y0=$y;
}
}
function chx_sector($img,$ox,$oy,$a,$b,$sd,$ed, $clr){//Draw a fan
$n=ceil(($ed-$sd)/ANGLE_STEP);
$d=$sd;
list($x0,$y0)=chx_getexy($a,$b, $d);
imageline($img,$x0+$ox,$y0+$oy,$ox,$oy,$clr);
for($i=0;$i<$n;$i++){
$ d=($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);
list($x,$y)=chx_getexy($a,$b,$d);
imageline($img ,$x0+$ox,$y0+$oy,$x+$ox,$y+$oy,$clr);
$x0=$x;
$y0=$y;
}
imageline($img,$x0+$ ox,$y0+$oy,$ox,$oy,$clr);
list($x,$y)=chx_getexy($a/2,$b/2,($d+$sd)/2);
imagefill($img,$x+$ox,$y+$oy,$clr);
}
function chx_sector3d($img,$ox,$oy,$a,$b,$v,$sd,$ed,$ clr){//3d sector
chx_sector($img,$ox,$oy,$a,$b,$sd,$ed,$clr);
if($sd<180){
list($R, $G,$B)=chx_getdarkcolor($img,$clr);
$clr=imagecolorallocate($img,$R,$G,$B);
if($ed>180) $ed=180;
list ($sx,$sy)=chx_getexy($a,$b,$sd);
$sx+=$ox;
$sy+=$oy;
list($ex,$ey)=chx_getexy($a,$ b,$ed);
$ex+=$ox;
$ey+=$oy;
imageline($img,$sx,$sy,$sx,$sy+$v,$clr);
imageline($img, $ex,$ey,$ex,$ey+$v,$clr);
chx_arc($img,$ox,$oy+$v,$a,$b,$sd,$ed,$clr);
list ($sx,$sy)=chx_getexy($a,$b,($sd+$ed)/2);
$sy+=$oy+$v/2;
$sx+=$ox;
imagefill($img, $sx,$sy,$clr);
}
}
function chx_getindexcolor($img,$clr){//RBG to index color
$R=($clr>>16) & 0xff;
$G= ($clr>>8)& 0xff;
$B=($clr) & 0xff;
return imagecolorallocate($img,$R,$G,$B);
}
?>
+--- -----------------------+
| pie3d.php //Three-dimensional pie chart file|
+--------------------- ---------------+
require("pie3dfun.php");
$a=150;//Ellipse major semi-axis
$b=50;//Ellipse segment semi-axis
$v=20;//Height of round cake
$f//Font
$ox=5+$a;
$oy=5+$b;
$fw=imagefontwidth($font);
$fh=imagefontheight( $font);
$datLst=array(30,10,20,20,10,20,10,20);//data
$labLst=array("a1","a2","a3","a4 ","a5","a6","a7","a8");//Tag
$clrLst=array(0x99ff00,0xff6666,0x0099ff,0xff99ff,0xffff99,0x99ffff,0xff3333,0x009999);
$w=10 +$a*2;
$h=10+$b*2+$v+($fh+2)*count($datLst);
$img=imagecreate($w,$h);
//Convert to RGB For the index color
for($i=0;$i
$clrbk=imagecolorallocate($img,0xff,0xff,0xff);
$clrt=imagecolorallocate($img,0x00,0x00,0x00);
//Fill the background Color
imagefill($img,0,0,$clrbk);
//Sum
$tot=0;
for($i=0;$i
$sd=0;
$ed=0;
$ ly=10+$b*2+$v;
for($i=0;$i $sd=$ed;
$ed+=$datLst[$i]/$tot*360;
//Draw a round cake
chx_sector3d($img,$ox,$oy,$a,$b,$v,$sd,$ed,$clrLst[$i]);//$sd,$ed,$clrLst[$i]) ;
//Draw label
imagefilledrectangle($img,5,$ly,5+$fw,$ly+$fh,$clrLst[$i]);
imagerectangle($img,5,$ly,5+$fw ,$ly+$fh,$clrt);
imagestring($img,$font,5+2*$fw,$ly,
$labLst[$i].":".$datLst[$i]."( ".(round(10000*($datLst[$i]/$tot))/100)."%)",
$clrt);
$ly+=$fh+2;
}
//Output graphics
header("Content-type:image/gif");
imagegif($img);
?>

The above introduces the implementation code of the PHP three-dimensional pie chart of the Pokemon Dark Phantom cheat code, including the content of the Pokemon Dark Phantom cheat code. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn