ポケモン ダークファントム チートコード php 三次元円グラフ実装コード

WBOY
リリース: 2016-07-29 08:38:55
オリジナル
1912 人が閲覧しました

苦労の末、pie3d が完成し、出来上がったものはみんなで共有します。ただし、私は PHP を初めて使用するため、コードが十分に洗練されていない可能性があります。皆さんにアドバイスをいただき、このプログラムを改善するために協力していただければ幸いです。忘れずに私に通知してください (estorm@yeah.net)
+------------------------+
| pie3dfun.php//パブリック関数| - ------------+
define("ANGLE_STEP",5);//楕円弧を描く時の角度ステップを定義
function chx_getdarkcolor( $ img,$clr){//$clr に対応する暗い色を見つけます
$rgb=imagecolorsforindex($img,$clr);
return array($rgb["red"]/2,$rgb["green") ]/2 ,$rgb["blue"]/2);
}
function chx_getexy($a,$b,$d){//角度 $d に対応する楕円上の点の座標を見つけます
$ d=deg2rad($d) ;
return array(round($a*Cos($d)),round($b*Sin($d))); oy,$a,$b ,$sd,$ed,$clr){//楕円弧関数
$n=ceil(($ed-$sd)/ANGLE_STEP);
$d=$sd; $x0,$y0)= chx_getexy($a,$b,$d);
for($i=0;$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;
}
}
関数 chx_sector($img,$ox,$oy,$a,$b) ,$sd,$ed, $clr){// ファンを描画します
$n=ceil(($ed-$sd)/ANGLE_STEP)
list($x0,$y0); chx_getexy($a,$b, $d);
imageline($img,$x0+$ox,$y0+$oy,$ox,$oy,$clr); n;$i++){
$ d=($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);
list($x,$y)=chx_getexy($a,$b,$ d);
イメージライン($x0+$ox,$y0+$oy,$x+$ox,$y+$oy,$clr);
$y0=$y; imageline($img,$x0+$ ox,$y0+$oy,$ox,$oy,$clr);
list($x,$y)=chx_getexy($a/2,$b/2,($d+) $sd)/2);
imagefill($x+$ox,$y+$oy,$clr)
}
関数 chx_sector3d($a,$b,$v) ,$sd,$ed,$ clr){//3D セクター
chx_sector($img,$ox,$oy,$a,$b,$sd,$ed,$clr);
if($sdlist($R, $G,$B)=chx_getdarkcolor($img,$clr)
$clr=imagecolorallocate($img,$R,$G,$B); ) $ed=180;
リスト ($sx,$sy)=chx_getexy($a,$b,$sd);
$sy+=$oy; )=chx_getexy($a,$ b,$ed);
$ex+=$ox
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);
リスト ($sx,$sy)=chx_getexy($a,$b,($sd+$ed)/2);
$sy+=$oy+$v/2; ox;
imagefill($img, $sx,$sy,$clr);
}
}
function chx_getindexcolor($img,$clr){//RBG をインデックスカラーにします
$R=($clr>>16) ) & 0xff;
$G= ($clr>8)& 0xff;
imagecolorallocate($img,$R,$G,$B); ?>
+--- ------------+
| //三次元円グラフ ファイル| ------------------- ---------------+
require("pie3dfun.php");
$a=150 ;//楕円の長半軸
$b=50;//楕円セグメントの半軸
$v=20;//丸いケーキの高さ
$f//フォント
$ox=5+$a; oy=5+$b;
$fw=イメージフォント幅($font);
$datLst=配列(30,10,20,20,10,20,10,20); //データ
$labLst=array("a1","a2","a3","a4 ","a5","a6","a7","a8");//タグ
$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);
//インデックスカラーの場合
$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($a,$b,$v,$sd, $ed,$clrLst[$i]);//$sd,$ed,$clrLst[$i]) ;
//ラベルを描画
imagefilledrectangle($img,5,$ly,5+$fw,$ly+) $fh,$clrLst[$i]);
imagerectangle($img,5,$ly,5+$fw ,$ly+$fh,$clrt); 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 チュートリアルに興味のある友人に役立つことを願っています。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート