PHP对象编程实现3D饼图

eaways111

eaways111

2016-01-29 14:23

PHP对象编程实现3D饼图,PHP对象编程实现3D饼图
  <?php

//公用函数

//把角度转换为弧度
function deg2Arc($degrees) {
return($degrees * (pi()/180.0));
}

//RGB
function getRGB($color){
  $R=($color16) & 0xff;
  $G=($color8) & 0xff;
  $B=($color) & 0xff;
  return (array($R,$G,$B));
}

// 取得在椭圆心为(0,0)的椭圆上 x,y点的值
function pie_point($deg,$va,$vb){
$x= cos(deg2Arc($deg)) * $va;
$y= sin(deg2Arc($deg)) * $vb;
return (array($x, $y));
}


//3D饼图类

class Pie3d{

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

function Pie3d($pa=100,$pb=60,$sData="100,200,300,400,500", $sColor="ee00ff,dd0000,cccccc,ccff00,00ccff")
{
    $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;$i<$DataNumber;$i++)      $DataTotal+=$this-DataArray[$i]; //算出数据和
     
    //填充背境
    imagefill($image, 0, 0, imagecolorallocate($image, 0xFF, 0xFF, 0xFF));

    /*
    ** 画每一个扇形
    */
    $Degrees = 0;
    for($i = 0; $i < $DataNumber; $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 ($R60 and $R<256)            $R=$R-60;
        if ($G60 and $G<256)            $G=$G-60;
    &nb
展开更多 50%)
分享

猜你喜欢

PHP对象编程实现3D饼图

PHP
PHP对象编程实现3D饼图

VC下编程实现3D文字

编程语言 网络编程
VC下编程实现3D文字

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

PHP中实现面向对象编程

PHP
PHP中实现面向对象编程

CorlDraw实现3D效果

CorelDRAW
CorlDraw实现3D效果

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

VC编程中如何在界面上实现3D文字

编程语言 网络编程
VC编程中如何在界面上实现3D文字

PHP的面向对象编程

Web开发
PHP的面向对象编程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《雷霆战机》5星战机升级技巧及装备搭配

《雷霆战机》5星战机升级技巧及装备搭配

在PHP3中实现SESSION的功能(二)

在PHP3中实现SESSION的功能(二)
下拉加载更多内容 ↓