調査プログラムでは、調査の割合を鮮明に表すために、統計データに基づいてさまざまなグラフを生成する必要があります。この点でも PHP は最初から GD ライブラリをロードすることで実装できます。円グラフは、1 つの値を合計値の割合として表示するのに最適な方法です。ここでは、PHP を使用して円グラフを実装し、この分野での PHP のアプリケーションについて説明します。その設計思想は次のとおりです。まず imagecreate() を使用して空のグラフィックを生成し、次に imageare() 弧関数を使用して最初に空のグラフィックに弧を描き、次に円の中心と弧を結ぶ 2 本の線を描きます。エンドポイント (PHP イメージ関数では扇形を描くことはできません) を作成し、imagefilltoborder 関数を使用して扇形を塗りつぶします。プログラムは次のように実装されます:
$#@60;?php
/*
角度をラジアンに変換します
*/
function radians ($degrees)
{
return($degrees * (pi()/180.0));
}
/*
** 円の中心を次のように取得します。 (0 , 0) 円上の x、y 点の値
*/
functioncircle_point($degrees, $diameter)
{
$x = cos(radians($degrees)) * ($diameter/2);
$y = sin(ラジアン($度)) * ($直径/2);
return (array($x, $y));
}
//チャートのパラメータを入力します
$ChartDiameter = 200; //チャートの直径
$ChartFont = 2 //チャートのフォント
$ChartFontHeight = imagefontheight( $ChartFont );//チャートのフォントのサイズ
$ChartData = array("75","45");//チャートの生成に使用されるデータは、データベースから取得することで決定できます
//$ChartLabel = array("yes" , "no"); //データに対応する名前
//グラフィックのサイズを決定します
$ChartWidth = $ChartDiameter + 20;
$ChartHeight = $ChartDiameter + 20 +
(($ChartFontHeight + 2) * count($ChartData));
//統計の合計数を決定します
for($index = 0; $index $#@60; count($ChartData); $index++)
{
$ChartTotal += $ChartData[$index];
}
$ChartCenterX = $ChartDiameter/2 + 10;
$ChartCenterY = $ChartDiameter/2 + 10;
//空白のグラフィックを生成します
$image = imagecreate($ChartWidth, $ChartHeight);
//色の割り当て
$colorBody = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$colorBorder = imagecolorallocate($image, 0x00, 0x00, 0x00);
$colorText = imagecolorallocate($image, 0x00, 0x00, 0x00);
$colorSlice = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$colorSlice[] = imagecolorallocate($image, 0x00, 0xFF, 0x00);
//背景を塗りつぶします
imagefill($image, 0, 0, $colorBody);
/*
** 各セクターを描画します
*/
$Degrees = 0;
for($index = 0; $index $#@60; count($ChartData); $index++)
{
$StartDegrees =round ($Degrees);
$Degrees += (($ChartData[$index]/$ChartTotal)*360);
$EndDegrees =round($Degrees);
$CurrentColor = $colorSlice[$index%(count($colorSlice))];
//F
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,
180,
$colorBorder);
imagearc($image,
$ChartCenterX,
$ChartCenterY,
$ChartDiameter,
$ChartDiameter,
180,
360,
$colorBorder);
imagearc($image,
$ChartCenterX,
$ChartCenterY,
$ ChartDiameter+7、
$ChartDiameter+7、
0、
180、
$colorBorder);
imagearc($image,
$ChartCenterX,
$ChartCenterY,
$ChartDiameter+7,
$ChartDiameter+7,
180,
360,
$colorBorder);
imagefilltoborder($image,
floor($ChartCenterX + ($ChartDiameter/2) + 2),
$ChartCenterY,
$colorBorder,
$colorBorder);
//画图例
for($index = 0; $index $#@60; count($ChartData); $index++)
{
$CurrentColor = $colorSlice[$index%(count($colorSlice))];
$LineY = $ChartDiameter + 20 + ($index*($ChartFontHeight+2));
//カラーボックスを描画します
imagerectangle($image,
10,
$LineY,
10 + $ChartFontHeight,
$LineY+$ChartFontHeight,
$colorBorder);
imagefilltoborder($image,
12,
$LineY + 2,
$colorBorder,
$CurrentColor);
//画标签
imagestring($image,
$ChartFont,
20 + $ChartFontHeight,
$LineY,
"$ChartLabel[$index]: $ChartData[$index]",
$colorText);
}
//このテキストは大きな画像を生成しています。必要に応じて、これをブラウザに送信し、それが GIF ファイルであることを認識することが重要です。一堆奇怪の乱暗号を閲覧可能
header("Content-type: image/gif");
//出力生成した図片
imagegif($image);
?$#@62;
chart.php,运行程序その结果如图1に保存。
しかし、これはサービスの終端でGIF画像にあり、私はHTML文中に使用する必要があります次の格式来调用它:
$#@60;?php
echo "$#@60;img src=chart.php $ #@62;「
?$#@62;
注:运行環境はapache_1_3_12+php-4.0RC1+win98、windows平台下です。 PHP の画像関数はすべて GD アプリケーションで実行され、GD アプリケーションは GIF 形式を処理する無償のソフトウェアです。 PHP の実行目录,その後编辑php.ini 構成文件,找到構成文件中;extension=php_gd.dll"去行";"号,如果没有发现则在構成文件的動的拡張子後追加一行extension=php_gd.dl最後に phpinfo() 関数を実行すると、サポート情報が表示されます。
http://www.bkjia.com/PHPjc/532657.html