suchen
Heimphp教程php手册php 3D饼图类绘制类函数

php 3D饼图类绘制类函数

Jun 13, 2016 am 09:48 AM
phpunterum函数原理参数实现Ja椭圆绘制饼图

下面关于php 3D饼图类绘制类函数实现原理是根据//椭圆长半轴 等参数绘制一个3D饼图形的代码。

下面关于php教程 3D饼图类绘制类函数实现原理是根据//椭圆长半轴 等参数绘制一个3D饼图形的代码。

class chart{

var $a; //椭圆长半轴
var $b; //椭圆短半轴
var $DataArray;  //每个扇形的数据
var $ColorArray; //每个扇形的颜色 要求按照十六进制书写但前面不加0x
//为边缘及阴影为黑色

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;$iDataArray[$i]; //算出数据和
    
    //填充背境
    imagefill($image, 0, 0, imagecolorallocate($image, 0xFF, 0xFF, 0xFF));

    /*
    ** 画每一个扇形
    */
    $Degrees = 0;
    for($i = 0; $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         if ($G>60 and $G         if ($B>60 and $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 and $StartDegrees            if($EndDegrees                for($k = 1; $k                 imagearc($image,$PieCenterX, $PieCenterY+$k,$DoubleA, $DoubleB, $StartDegrees, $EndDegrees, $CurrentDarkColor);
           }else{
               for($k = 1; $k                 imagearc($image,$PieCenterX, $PieCenterY+$k,$DoubleA, $DoubleB, $StartDegrees, 180, $CurrentDarkColor);
           }

        }
   }
        
    /*到此脚本已经生了一幅图像了
    **现在需要的是把它发到浏览器上,重要的一点是要将标头发给浏览器,让它知道是一个GIF文件。不然的话你只能看到一堆奇怪的乱码
    */ 
    //输出生成的图片    
    header("Content-type: image/gif");
    imagegif($image);
    imagedestroy($image);
}//End drawPie()
}//End class


//实现

$objp = new chart();
$objp->DrawPie();

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.