<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      php做餅圖的函數(轉)

      [摘要]php做餅圖的函數作者:qdlover 發表日期:2000年9月15日 閱讀次數:14--------------------------------------------------------...
      php做餅圖的函數
      作者:qdlover 發表日期:2000年9月15日 閱讀次數:14
      --------------------------------------------------------------------------------

      再介紹一下我自己,呵呵
      我是個新手,當時學php純粹是為了應付領導哦,讓我們做統計圖,我本來是學asp的,突然改行很不適應,不過php功能的確很強大呀,呵呵,我都離不了他了,這不,餅圖,柱型圖都搞定了,可是還有很多問題我不會,還希望大家多指教呀,說了好多廢話了,我還以為是在寫信那
      我的聯系方式是:
       email:qingdaohb@yeah.net
       http://qdlover.yeah.net
      老板催了,沒辦法,餅圖函數出爐了,大家快搶呀

      ########
      bimage.php3
      ########
      <?
      /*
      函數說明
      $chartdata:數據,是數組元素
      $chartfont:字號
      $chartdiameter:決定餅的大。ㄒ茨沭I不餓了,呵呵)
      $chartlabel:標題,也是數組元素
      $colorslice:顏色數組,例如$tmp=array255,255,255);$colorslic=array($tmp);
      $colorborder:邊框顏色,數組
      $colortext :文本顏色,數組
      $colorbody:背景顏色,數組
      $file:輸出圖片文件名*/
      function bimage($chartdata,
      $chartfont,
      $chartdiameter ,
      $chartlabel ,
      $colorslice,
      $colorbody ,
      $colorborder,
      $colortext ,
      $file
      )
      {
      $chartdiameter=150;

       $chartfontheight=imagefontheight($chartfont);
       $d1=10;$d2=20;$d3=30;$d4=40;$d5=50;
       $chartdata=array($d1,$d2,$d3,$d4,$d5);
       $chartlabel=array("D1","D2","D3","D4","D5");
       $chartwidth=$chartdiameter+20;
       $chartheight=$chartdiameter+20+(($chartfontheight+2)*count($chartdata));
       header("content-type:image/gif");
       $image=imagecreate($chartwidth,$chartheight);
      $colorbody =imagecolorallocate ($image,$colorbody[0],$colorbody[1],$colorbody[2]);
      $colortext =imagecolorallocate ($image,$colortext[0],$colortext[1],$colortext[2]);
      $colorborder =imagecolorallocate ($image,$colorborder[0],$colorborder[1],$colorborder[2]);
      for ($i=0;$i<count($colorslice);$i++)
      {
      $t=imagecolorallocate($image,$colorslice[$i][0],$colorslice[$i][1],$colorslice[$i][2]);
      $colorslice[$i]=$t;
      }




       for($i=0;$i<count($chartdata);$i++)
       {
       $charttotal+=$chartdata[$i];
       }
       $chartcenterx=$chartdiameter/2+10;
       $chartcentery=$chartdiameter/2+10;
      $degrees=0;
      for($i=0;$i<count($chartdata);$i++)
      {
      $startdegrees=round($degrees);
      $degrees+=(($chartdata[$i]/$charttotal)*360);
      $enddegrees=round($degrees);
      $currentcolor=$colorslice[$i%(count($colorslice))];
      imagearc($image ,
       $chartcenterx,
       $chartcentery,
       $chartdiameter,
       $chartdiameter,
       $startdegrees,
       $enddegrees,
       $currentcolor);
       list($arcx,$arcy)=circle_point($startdegrees,$chartdiameter);

       imageline($image,
       $chartcenterx,
       $chartcentery,
       floor($chartcenterx+$arcx),
       floor($chartcentery+$arcy),
       $currentcolor );
       list($arcx,$arcy)=circle_point($enddegrees,$chartdiameter);

       imageline($image,
       $chartcenterx,
       $chartcentery,
       ceil($chartcenterx+$arcx),
       ceil($chartcentery +$arcy),
       $currentcolor);

       $midpoint=round((($enddegrees-$startdegrees)/2)+$startdegrees);
       list($arcx,$arcy)= circle_point ( $midpoint, $chartdiameter/2);
       imagefilltoborder($image,
       floor($chartcenterx+$arcx),
       floor($chartcentery+$arcy),
       $currentcolor,
       $currentcolor);
       }
       imagearc($image,
      $chartcenterx,
      $chartcentery,
      $chartdiameter,
      $chartdiameter,
      0,360,
      $colorborder);
       imagefilltoborder ($image,
      floor($chartcenterx +( $chartdiameter /2)+2),
      $chartcentery ,
      $colorborder,
      $colorborder );
      for ($i=0;$i<count($chartdata);$i++)
      {
      $currentcolor=$colorslice[$i%(count($colorslice))];
      $liney=$chartdiameter+20+($i*($chartfontheight+2));
      imagerectangle ($image,
      10,
      $liney,
      20+$chartfontheight,
      $liney+$chartfontheight,
      $colorbody);
      imagefilltoborder($image,
       12,
       $liney+2,
       $colorbody,
       $currentcolor);
      imagestring($image,
      $chartfont,
      40+$chartfontheight,
      $liney,
      "$chartlabel[$i]:$chartdata[$i]",
      $colortext);

      }


       imagegif ($image,$file);

      }

      function radians($degrees)
       {
       return($degrees*(pi()/180.0));
       }
      function circle_point($degrees,$diameter)
       {
       $x=cos(radians($degrees))*($diameter/2);
       $y=sin(radians($degrees))*($diameter/2);
       return (array($x,$y));
       }
      ?>
      ###########
      這是一個調用的例子
      ###########

      <?
      include("bfunc.php3");
      $chartdiameter=250;
       $chartfont=5;
       $d1=10;$d2=20;$d3=30;$d4=40;$d5=50;
       $chartdata=array($d1,$d2,$d3,$d4,$d5);
       $chartlabel=array("D1","D2","D3","D4","D5");

       $colorbody=array(0xff,0xff,0xff);
       $colorborder=array(0x00,0x00,0x00);
       $colortext=array(0xff,0xff,0xff);

       $color1=array(0xff,0x00,0x00);
       $color2=array(0x00,0xff,0x00);
       $color3=array(0x00,0x00,0xff);
       $color4=array(0xff,0xff,0x00);
       $color5=array(0xff,0x00,0xff);
       $colorslice=array($color1 ,$color2,$color3,$color4,$color5);
      $file="tj.gif"
      bimage($chartdata,
       $chartfont,
       $chartdiameter ,
       $chartlabel ,
       $colorslice,
       $colorbody ,
       $colorborder,
       $colortext ,
       $file )
      ?>


      【奧索網版權所有,如需轉載,請注明出處】



      日韩精品一区二区三区高清