入力パラメータに基づいて円グラフを自動的に生成します。
-
- /*
- * 円グラフの画像を生成します
- */
- class PieChart {
- private $center
- private $width; //円グラフの直径
- private; $image ; //グラフィックオブジェクト
- function __construct($width,$backcolor = array(array("r"=>0xFF,"g"=>0xFF,"b"=>0xFF)) {
- $this ->width = $width;
- $this->center = $width / 2;
-
- //グラフィックオブジェクトを作成します
- $this->image = imagecreatetruecolor($this->width, $this -> width);
-
- //初期グラフィックを白で塗りつぶします
- $color = imagecolorallocate($this->image, $backcolor[0]["r"], $backcolor[0]["g"] , $backcolor [0]["b"]);
- imagefill($this->image, 0, 0, $color);
- }
-
- //グラフデータを設定
- public functiongraphData($data, $colors ){
- $black = imagecolorallocate($this->image, 0x00, 0x00, 0x00);
-
- $sum = array_sum($data);
-
- $start = -90;
-
- for($i=0; $i< count($data); $i++){
- $color = imagecolorallocate($this->image, $colors[$i]["r"], $colors[$i]["g"], $colors[ $i]["b"]);
-
- $stop = @($data[$i] / $sum * 360) + $start;
-
- imagefilledarc($this->image, $this- >center , $this->center,
- $this->width, $this->width, $start, $stop, $color, IMG_ARC_PIE);
- imagefilledarc($this->image, $this -> センター、$this->センター、
- $this->幅、$this->幅、$start、$stop、IMG_ARC_NOFILL);
-
- $start = $stop;
- }
- }
-
- //グラフィックを生成する
- public function flashImage(){
- header("Content-type:image/png");
- imagepng($this->image);
- }
- }
- ?>
-
コードをコピー
-
-
- include_once 'piechart.cls.php';
-
- $total = $_GET["total"];
- $count = $_GET["count"];
-
- $data = array ($total-$count,$count);
- $colors = array(
- array('r'=>0xDD,'g'=>0xEE,'b'=>0xFF),
- array('r '=>0xFF,'g'=>0xBB,'b'=>0xAA)
- );
-
- $chart = new PieChart(200,array(array("r"=>0xF9,"g" =>0xF9,"b"=>0xF9)));
- $chart->graphData($data, $colors);
- $chart->flushImage();
- ?>
コードをコピー
|