ホームページ php教程 php手册 PHP を使用してクールなデータ円グラフを作成する

PHP を使用してクールなデータ円グラフを作成する

Jun 21, 2016 am 09:00 AM
draw img

源代码:

//+------------------------+

//| pie3dfun.PHP//公用函数 |

//+------------------------+

define("ANGLE_STEP", 5); //定义画椭圆弧时的角度步长

function draw_getdarkcolor($img,$clr) //求$clr对应的暗色

{

$rgb = imagecolorsforindex($img,$clr);

return array($rgb["red"]/2,$rgb["green"]/2,$rgb["blue"]/2);

}

function draw_getexy($a, $b, $d) //求角度$d对应的椭圆上的点坐标

{

$d = deg2rad($d);

return array(round($a*Cos($d)), round($b*Sin($d)));

}

function draw_arc($img,$ox,$oy,$a,$b,$sd,$ed,$clr) //椭圆弧函数

{

$n = ceil(($ed-$sd)/ANGLE_STEP);

$d = $sd;

list($x0,$y0) = draw_getexy($a,$b,$d);

for($i=0; $i<$n; $i++)

{

$d = ($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);

list($x, $y) = draw_getexy($a, $b, $d);

imageline($img, $x0+$ox, $y0+$oy, $x+$ox, $y+$oy, $clr);

$x0 = $x;

$y0 = $y;

}

}

function draw_sector($img, $ox, $oy, $a, $b, $sd, $ed, $clr) //画扇面

{

$n = ceil(($ed-$sd)/ANGLE_STEP);

$d = $sd;

list($x0,$y0) = draw_getexy($a, $b, $d);

imageline($img, $x0+$ox, $y0+$oy, $ox, $oy, $clr);

for($i=0; $i<$n; $i++)

{

$d = ($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);

list($x, $y) = draw_getexy($a, $b, $d);

imageline($img, $x0+$ox, $y0+$oy, $x+$ox, $y+$oy, $clr);

$x0 = $x;

$y0 = $y;

}

imageline($img, $x0+$ox, $y0+$oy, $ox, $oy, $clr);

list($x, $y) = draw_getexy($a/2, $b/2, ($d+$sd)/2);

imagefill($img, $x+$ox, $y+$oy, $clr);

}

function draw_sector3d($img, $ox, $oy, $a, $b, $v, $sd, $ed, $clr) //3d扇面

{

draw_sector($img, $ox, $oy, $a, $b, $sd, $ed, $clr);

if($sd<180)

{

list($R, $G, $B) = draw_getdarkcolor($img, $clr);

$clr=imagecolorallocate($img, $R, $G, $B);

if($ed>180) $ed = 180;

list($sx, $sy) = draw_getexy($a,$b,$sd);

$sx += $ox;

$sy += $oy;

list($ex, $ey) = draw_getexy($a, $b, $ed);

$ex += $ox;

$ey += $oy;

imageline($img, $sx, $sy, $sx, $sy+$v, $clr);

imageline($img, $ex, $ey, $ex, $ey+$v, $clr);

draw_arc($img, $ox, $oy+$v, $a, $b, $sd, $ed, $clr);

list($sx, $sy) = draw_getexy($a, $b, ($sd+$ed)/2);

$sy += $oy+$v/2;

$sx += $ox;

imagefill($img, $sx, $sy, $clr);

}

}

function draw_getindexcolor($img, $clr) //RBG转索引色

{

$R = ($clr>>16) & 0xff;

$G = ($clr>>8)& 0xff;

$B = ($clr) & 0xff;

return imagecolorallocate($img, $R, $G, $B);

}

// main 関数と出力イメージを描画

// $datLst はデータ配列、$datLst はラベル配列、$datLst はカラー配列

// 上記 3 つの配列の次元は等しい必要があります

functiondraw_img ($datLst ,$labLst,$clrLst,$a=250,$b=120,$v=20,$font=10)

{

$ox = 5+$a ;

$oy = 5+$b;

$fw = imagefontheight($font); >

$n = count($datLst);//データ項目数

$w = 10+$a*2; $h = 10+$b*2+$v+($fh+2)*$n;

$img = imagecreate($w, $h); 🎜>

//RGB をインデックス カラーに変換します

for($i=0; $i

$clrLst[$i] = draw_getindexcolor($img,$clrLst[$i]);

$clrbk = imagecolorallocate($img, 0xff, 0xff, 0xff); ($img , 0x00, 0x00, 0x00);

//塗りつぶしの背景色

imagefill($img, 0, 0, $clrbk);

//合計

$tot = 0;

for($i=0; $i$ tot += $datLst[$i];

$sd = 0;

$ly = 10+$b*2 +$ v;

for($i=0; $i{

$sd = $ed; >$ ed += $datLst[$i]/$tot*360;

//丸いケーキを描く

draw_sector3d($img, $ox, $ oy, $ a, $b, $v, $sd, $ed, $clrLst[$i]); //$sd,$ed,$clrLst[$i]);

//タグを描画します

imagefilledrectangle($img, 5, $ly, 5+$fw, $ly+$fh, $clrLst[$i]);

imagerectangle($); img, 5 , $ly, 5+$fw, $ly+$fh, $clrt);

//imagestring($img, $font, 5+2*$fw, $ly, $labLst[ $i] .":".$datLst[$i]."(".(round(10000*($datLst[$i]/$tot))/100)."%)", $clrt); 🎜>

$str = iconv("GB2312", "UTF-8", $labLst[$i]);

ImageTTFText($img, $font, 0, 5+2 *$fw, $ly+13, $clrt, "./simsun.ttf", $str.":".$datLst[$i]."(".(round(10000*($datLst[ $i] /$tot))/100)."%)");

$ly += $fh+2

}

/ /Output graphics

header("Content-type: image/png");

//生成された画像を出力します

$ imgFileName = " ../temp/".time().".png";

imagepng($img,$imgFileName)

echo ''''''; '''''''''''''''''''''''''''''''''''''''''''''' ''''

}

$datLst = array(30, 10, 20, 20, 10, 20, 10, 20); >

$labLst = array("中国科学技術大学"、"安徽科学技術大学"、"清華大学"、"北京大学"、"南京大学"、"上海大学"、"河海大学"大学" ", "中山大学") //Tag

$clrLst = array(0x99ff00, 0xff6666, 0x0099ff, 0xff99ff, 0xffff99, 0xff3333, 0x009999);

//Draw

draw_img($datLst,$labLst,$clrLst);

?>

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

imgファイルの開き方 imgファイルの開き方 Sep 18, 2023 am 09:40 AM

img ファイルを開く方法には、仮想光学ドライブ ソフトウェアを使用する、圧縮ソフトウェアを使用する、特別なツールを使用するなどがあります。詳細な紹介: 1. 仮想光学ドライブ ソフトウェアを使用して、仮想光学ドライブ ソフトウェアを開き、ダウンロードしてインストールします。img ファイルを右クリックし、「プログラムから開く」または「関連プログラム」を選択し、ポップでインストールされている仮想光学ドライブ ソフトウェアを選択します。 -up ダイアログ ボックス、仮想 光学ドライブ ソフトウェアは、img ファイルを自動的にロードし、仮想光学ドライブのディスク イメージとして使用します。仮想光学ドライブのディスク アイコンをダブルクリックして、img ファイルを開いてその内容にアクセスします。等

imgファイルの開き方 imgファイルの開き方 Jul 06, 2023 pm 04:17 PM

img ファイルを開く方法: 1. img ファイルのパスを確認します; 2. img ファイル オープナーを使用します; 3. 開く方法を選択します; 4. 画像を表示します; 5. 画像を保存します。 img ファイルは一般的に使用される画像ファイル形式で、通常は画像データを保存するために使用されます。

Python で Pygame の Draw 描画メソッドを使用する方法 Python で Pygame の Draw 描画メソッドを使用する方法 Apr 19, 2023 pm 04:46 PM

Pygame の Draw Pygame は、長方形、多角形、円、直線、円弧などの単純なグラフィック形状を描画するための描画モジュールを提供します。 pygame.draw モジュールの一般的に使用されるメソッドを次の表に示します。 名前 説明 pygame.draw.rect() は四角形を描画します pygame.draw.polygon() は多角形を描画します pygame.draw.circle() は円に基づいて描画します中心と半径に pygame.draw.ellipse() は楕円を描画します pygame.draw.arc() は円弧を描画します (楕円の波打つ部分) pygame.draw.line() は線を描画します

imgの形式は何ですか? imgの形式は何ですか? Mar 17, 2023 am 10:33 AM

img はファイル圧縮形式で、主にフロッピー ディスクのイメージ ファイルを作成するために使用されます。フロッピー ディスク全体または CD 全体の内容を圧縮するために使用できます。このファイル形式を使用すると、拡張子「.IMG」のファイルが作成されます。 ; img ファイルには、「Ehfa_HeaderTag」、「Ehfa_File」、「Ehfa_Entry」という 3 つの基本ノードが含まれています。

jqueryでimgのsrc属性を変更する方法 jqueryでimgのsrc属性を変更する方法 Mar 03, 2022 pm 03:41 PM

jquery で img src 属性を変更する方法: 1. attr() 属性、構文 "$("img").attr("src","イメージ ファイルのアドレス")" を使用します。 2. prop() メソッドの構文は「 $("img").prop("src","画像ファイルのアドレス")」です。

U ディスク pe が画像を読み取れません U ディスク pe が画像を読み取れません Mar 19, 2024 pm 12:07 PM

U ディスクは頻繁に使用されるストレージ デバイスの 1 つです。また、使用中にいくつかの小さな問題が発生することがあります。たとえば、U ディスクが読み取れない場合があります。解決方法はありますか? しまってください。 USB フラッシュ ドライブを読み取れませんか?問題を簡単に解決する方法を 4 つのステップで教えます。USB フラッシュ ドライブをコンピューターに挿入したら、[スタート] メニューをクリックし、[コントロール パネル] を選択して、保管してください。 USB フラッシュ ドライブを読み取れませんか?問題を簡単に解決するための 4 つの手順. コントロール パネルで [デバイス マネージャー] を見つけてダブルクリックします。そのままにしておいて! USB フラッシュ ドライブを読み取れませんか?問題を簡単に解決する方法を示す 4 つのステップ: デバイス マネージャーのメイン インターフェイスでユニバーサル シリアル バス コントローラーを見つけて、保管してください。 USB フラッシュ ドライブを読み取れませんか? USB 大容量ストレージ デバイスを簡単に見つけて選択し、右クリックして [アンインストール] を見つけて保管する方法を 4 つのステップで説明します。 USB フラッシュ ドライブを読み取れませんか?問題を簡単に解決する方法を示す 4 つのステップ。ディスカッション用のメッセージを残すことを歓迎します。

HTMLのイメージタグは何を意味しますか HTMLのイメージタグは何を意味しますか Mar 04, 2021 pm 02:37 PM

HTML では、イメージ タグは、イメージを定義するために使用されるタグ、つまり「<img>」タグを指します。 img 要素は、Web ページに画像を埋め込むことができます。「<img>」タグは、参照画像のプレースホルダを作成し、画像を HTML ページにリンクするために使用されます。img タグは、src 属性を使用して、Web ページの URL を指定します。画像を表示します。構文「<img src="imageurl">」。

CSS画像の歪みに対処する方法 CSS画像の歪みに対処する方法 Sep 13, 2021 am 11:34 AM

CSS 画像の歪みの解決策: 1. 対応する CSS ファイルを開きます; 2. 元の要素のコンテンツの長さと幅を保持するように「object-fit:none;」を設定します。

See all articles