3D 円グラフ

Jun 21, 2016 am 09:08 AM
img quot

円グラフ

ずっと何かを出版したいと思っていました。最近、php4 の php_gd.dll を完成させたばかりなので、グラフィック プログラムを作成して遊ぶのが待ちきれません。 PHPで円グラフを作成する例をたくさん見ましたが、それらはすべて2次元だったので、3次元のものを作りたいと思いました。苦労の末、pie3d が完成し、出来上がったものはみんなで共有します。ただし、私は PHP を初めて使用するため、コードが十分に洗練されていない可能性があります。皆さんにアドバイスをいただき、このプログラムを改善するために協力していただければ幸いです。忘れずに (estorm@yeah.net) に通知してください

+------------------------+
| 公開関数| + ------------------------+

define("ANGLE_STEP",5);//楕円弧を描く際の角度ステップを定義する
関数chx_getdarkcolor ($img,$clr){//$clr に対応する暗い色を見つけます
$rgb=imagecolorsforindex($img,$clr);
return array($rgb["red"]/2,$rgb[" green"] /2,$rgb["blue"]/2);
}

function chx_getexy($a,$b,$d){//角度 $d に対応する楕円上の点座標を見つけます
$ d=deg2rad( $d);
return array(round($a*Cos($d)),round($b*Sin($d))); $oy,$ a,$b,$sd,$ed,$clr){//楕円弧関数
$n=ceil(($ed-$sd)/ANGLE_STEP); ($x0, $y0)=chx_getexy($a,$b,$d);
for($i=0;$i$d=($d+ANGLE_STEP)> $ed?$ ed:($d+ANGLE_STEP);
list($x,$y)=chx_getexy($a,$b,$d);
imageline($img,$x0+$ox,$y0+$oy) ,$x+$ ox,$y+$oy,$clr);
$x0=$x
}
}
関数 chx_sector($img,$ox,$oy,$a,$ b,$sd ,$ed,$clr){// ファンを描画します
$n=ceil(($ed-$sd)/ANGLE_STEP)
list($x0,$y0); =chx_getexy($a,$b,$d);
イメージライン($img,$x0+$ox,$y0+$oy,$ox,$oy,$clr); $n;$i++ ){
$d=($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);
list($x,$y)=chx_getexy($a,$b, $d);
イメージライン($x0+$ox,$y0+$oy,$x+$ox,$y+$oy,$clr);
imageline($img,$x0+$ox,$y0+$oy,$ox,$oy,$clr);
list($x,$y)=chx_getexy($a/2,$b/2,($) d+$sd)/ 2);
imagefill($x+$ox,$y+$oy,$clr);
}

関数 chx_sector3d($img,$ox,$oy,$a,$b, $v,$sd ,$ed,$clr){//3D セクター
chx_sector($img,$ox,$oy,$a,$b,$sd,$ed,$clr); ;180){
list($R,$G,$B)=chx_getdarkcolor($img,$clr)
$clr=imagecolorallocate($img,$R,$G,$B); ;180) $ed =180;
リスト($sx,$sy)=chx_getexy($a,$b,$sd);
$sy+=$oy; $ey)=chx_getexy ($a,$b,$ed);
$ey+=$oy; $clr);
イメージライン($img,$ex,$ey,$ex,$ey+$v,$clr);
chx_arc($img,$ox,$oy+$v,$a,$b,$sd) ,$ed,$ clr);
list($sx,$sy)=chx_getexy($a,$b,($sd+$ed)/2); =$ox;
imagefill($img,$sx,$sy,$clr);
}
}

function chx_getindexcolor($img,$clr){//RBG をインデックスカラーにします
$R=($clr> >16) & 0xff;
$G=($clr>>8)& 0xff;
return imagecolorallocate($img,$R,$G,$B);
}

? >

+---------------+
| 3 次元の円グラフ ファイル|
+--------------+

require("pie3dfun.php");/ /楕円長半径
$b =50;//楕円セグメント長軸
$v=20;//丸いケーキの高さ
$font=5;//フォント

$ox=5+$a;
$oy=5+$b;
$fh=画像フォントの高さ($font); ,20);//データ
$labLst= array("a1","a2","a3","a4","a5","a6","a7","a8");//タグ
$clrLst=array(0x99ff00,0xff6666,0x0099ff, 0xff99ff,0xffff99,0x99ffff,0xff3333,0x009999);

$w=10+$a*2+$v+($fh) +2)*count($datLst);

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

//RGB をインデックスカラーに変換
for($i=0;$i
$clrbk=imagecolorallocate($) img,0xff,0xff,0xff);
$ clrt=imagecolorallocate($img,0x00,0x00,0x00);
//背景色を塗りつぶします
imagefill($img,0,0,$clrbk);
$tot=0;
for($i =0;$i
$sd=0;
$ed=0;
$ly=10+$b*2+$v;
for($i=0; $i $sd=$ed;
$ed+ =$datLst[$i]/$tot*360;
//丸いケーキを描く
chx_sector3d($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); 5+2*$fw,$ly,
$ labLst[$i].":".$datLst[$i]."(".(round(10000*($datLst[$i]/$tot)) /100)."%)",
$clrt );
$ly+=$fh+2
//出力グラフィックス
header("Content-type:image/gif"); ;

?>





このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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 ファイルは一般的に使用される画像ファイル形式で、通常は画像データを保存するために使用されます。

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

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

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

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 つのステップ。ディスカッション用のメッセージを残すことを歓迎します。

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","画像ファイルのアドレス")」です。

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