• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    php做餅圖的函數

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 28次 | 進入軟件測試論壇討論

    領測軟件測試網 再介紹一下我自己,呵呵
    我是個新手,當時學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       )
    ?>

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>