열심히 노력한 끝에 Pie3d가 완성되고, 좋은 내용은 모두와 공유됩니다. 그러나 저는 PHP를 처음 사용하기 때문에 코드가 충분히 다듬어지지 않았을 수 있습니다. 모두가 저에게 조언을 해주고 이 프로그램을 개선하기 위해 함께 노력할 수 있기를 바랍니다. 저에게 꼭 알려주세요(estorm@yeah.net)
--------------------------
|pie3dfun.php//Public 기능|
-------------
define("ANGLE_STEP",5);//다음의 경우 각도 단계를 정의합니다. 타원형 호 그리기
function chx_getdarkcolor($img,$clr){//$clr에 해당하는 어두운 색상 찾기
$rgb=imagecolorsforindex($img,$clr)
return array($rgb ["빨간색"]/2 ,$rgb["녹색"]/2,$rgb["파란색"]/2)
}
function chx_getexy($a,$b,$d){/ /해당 각도 찾기 $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){//타원호 함수
$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;
}
}
chx_sector($img,$ox,$oy,$a,$b,$sd,$ed ,$clr){// 부채 그리기
$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); }
chx_sector3d 함수($ img,$ox,$oy,$a,$b,$v,$sd,$ed,$clr){//3d 섹터
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; )=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 색인 색상
$R=($clr>>16) & 0xff
$G=($clr>>8)& 0xff; 0xff;
return imagecolorallocate( $img,$R,$G,$B)
}
?> ---------- --
| Pie3d.php //3차원 원형 차트 파일
------ -------
require( "pie3dfun.php")
$a=150;//타원의 장반경
$b=50;//반장축 타원 세그먼트의 축
$v=20;//둥근 케이크의 높이
$f//Font
$ox=5 $a
$oy=5 $b; >$fw=imagefontwidth($font);
$fh=imagefontheight($font)
$datLst=array(30,10,20,20,10,20,10,20);//데이터
$labLst=array("a1","a2","a3","a4","a5","a6","a7","a8");//태그
$clrLst= 배열(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);//RGB를 인덱스 색상으로 변환
for($i=0;$i
$clrbk=imagecolorallocate ($img,0xff,0xff,0xff);
$clrt=imagecolorallocate($img, 0x00,0x00,0x00)
//배경색 채우기
imagefill($img,0,0, $clrbk);
//합계
$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;
/ /둥근 케이크 그리기
chx_sector3d($img,$ox,$oy,$a,$ b,$v,$sd,$ed,$clrLst[$i]);//$sd,$ed, $clrLst[$i]);
//라벨 그리기
imagefilled직사각형($img, 5,$ly,5 $fw,$ly $fh,$clrLst[$i])
이미지직사각형( $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
}
//그래픽 출력
header("Content-type:image/gif")
imagegif($img)?> ;
위 내용은 포켓몬 다크 팬텀 치트 코드의 내용을 포함하여 포켓몬 다크 팬텀 치트 코드의 PHP 3차원 원형 차트 구현 코드를 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.