ホームページ >バックエンド開発 >PHPチュートリアル >PHP 3D円グラフ描画機能_PHPチュートリアル

PHP 3D円グラフ描画機能_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:45:16846ブラウズ

PHP 3D 円グラフ描画関数の次の実装原理は、 // 楕円の長半軸などのパラメータに基づいて 3D 円グラフを描画するコードです。

以下はPHPチュートリアルです。3D円グラフ描画機能の実装原理は、 // 楕円の長半軸などのパラメータに基づいて3D円グラフを描画するコードです。

クラスチャート{

var $a //楕円の長半軸
var $b; //楕円の短半軸
var $DataArray; //各セクターのデータ
var $ColorArray; //各セクターの色は、先頭に 0x を追加せずに 16 進数で記述する必要があります
//エッジと影は黒です

関数チャート($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); }

関数 setA($v){
$this->a=$v; }

関数 getA(){
$this->a を返します
}

関数 setB($v){
$this->b=$v; }

関数getB(){

$this->b を返す
}

関数 setDataArray($v){

$this->DataArray=split(",",$v); }

関数 getDataArray($v){

$this->DataArray を返します

}

関数 setColorArray($v){

$this->ColorArray=split(",",$v); }


関数 getColorArray(){
$this->ColorArray を返します

}



関数 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; リスト($R,$G,$B)=getRGB(0); $colorBorder=imagecolorallocate($image,$R,$G,$B); $DataNumber=count($this->DataArray);

//$DataTotal
for($i=0;$iDataArray[$i]; //データの合計を計算します

//背景を塗りつぶします

Imagefill($image, 0, 0, imagecolorallocate($image, 0xFF, 0xFF, 0xFF));

/*
    ** 画每一个扇形
    */
    $度 = 0;
    for($i = 0; $i         $StartDegrees =round($Degrees);
        $Degrees += (($this->DataArray[$i]/$DataTotal)*360);
        $EndDegrees = ラウンド($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 かつ $R         if ($G>60 かつ $G         if ($B>60 かつ $B         $CurrentDarkColor=imagecolorallocate($image,$R,$G,$B);
        //画扇形弧
        imagearc($image,$PieCenterX,$PieCenterY,$DoubleA,$DoubleB,$StartDegrees,$EndDegrees,$CurrentColor);
        //画直線
        list($ArcX, $ArcY) = pie_point($StartDegrees , $this->a , $this->b);
        imageline($image,$PieCenterX,$PieCenterY,floor($PieCenterX + $ArcX),floor($PieCenterY + $ArcY),$CurrentColor);
        //画直線
        list($ArcX, $ArcY) = pie_point($EndDegrees,$this->a , $this->b);
        imageline($image,$PieCenterX,$PieCenterY,ceil($PieCenterX + $ArcX),ceil($PieCenterY + $ArcY),$CurrentColor);
        // 充満扇形
        $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);

//画阴影
        if ($StartDegrees>=0 および $StartDegrees<=180){
           if($EndDegrees<=180){
               for($k = 1; $k                 imagearc($image,$PieCenterX, $PieCenterY+$k,$DoubleA, $DoubleB, $StartDegrees, $EndDegrees, $CurrentDarkColor);
           }その他{
               for($k = 1; $k                 imagearc($image,$PieCenterX, $PieCenterY+$k,$DoubleA, $DoubleB, $StartDegrees, 180, $CurrentDarkColor);
           }

}
   }
        
    /*此処此稿已经生了一幅图像了
    ** 必要なのは、これをブラウザに送信することですが、重要なのは、このテキストが GIF ファイルであることを認識できるようにすることです。     */
    //生成された画像を出力
    header("コンテンツタイプ: image/gif");
    imagegif($image);
    imagedestroy($image);
}//drawPie() を終了します
}//授業終了

//实现

$objp = 新しいチャート();

$objp->DrawPie();

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633048.html技術記事以下の PHP 3D 円グラフ描画関数の実装原理は、 // 楕円の長半軸などのパラメータに基づいて 3D 円グラフを描画するコードです。 以下は、3D 円グラフ描画機能の独自の実装に関する PHP チュートリアルです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。