3维饼图

Jun 21, 2016 am 09:08 AM
img quot

饼图

一直想发表点东西。最近刚把php4中的php_gd.dll搞定,就迫不及待的想做点图形程序玩玩。看到有许多php做饼图的例子,看了一下都是2维的,于是就想做个3维的。经过努力pie3d完成了,好东西与大家分享。不过小弟是php新手,代码可能不够精炼,希望大家指教共同来完善这个程序。记得通知我(estorm@yeah.net)

+------------------------+
| pie3dfun.php//公用函数 |
+------------------------+

define("ANGLE_STEP",5);//定义画椭圆弧时的角度步长
function 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)));
}

function chx_arc($img,$ox,$oy,$a,$b,$sd,$ed,$clr){//椭圆弧函数
$n=ceil(($ed-$sd)/ANGLE_STEP);
$d=$sd;
list($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;
$y0=$y;
}
}
function chx_sector($img,$ox,$oy,$a,$b,$sd,$ed,$clr){//画扇面
$n=ceil(($ed-$sd)/ANGLE_STEP);
$d=$sd;
list($x0,$y0)=chx_getexy($a,$b,$d);
imageline($img,$x0+$ox,$y0+$oy,$ox,$oy,$clr);
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;
$y0=$y;
}
imageline($img,$x0+$ox,$y0+$oy,$ox,$oy,$clr);
list($x,$y)=chx_getexy($a/2,$b/2,($d+$sd)/2);
imagefill($img,$x+$ox,$y+$oy,$clr);
}

function chx_sector3d($img,$ox,$oy,$a,$b,$v,$sd,$ed,$clr){//3d扇面
chx_sector($img,$ox,$oy,$a,$b,$sd,$ed,$clr);
if($sdlist($R,$G,$B)=chx_getdarkcolor($img,$clr);
$clr=imagecolorallocate($img,$R,$G,$B);
if($ed>180) $ed=180;
list($sx,$sy)=chx_getexy($a,$b,$sd);
$sx+=$ox;
$sy+=$oy;
list($ex,$ey)=chx_getexy($a,$b,$ed);
$ex+=$ox;
$ey+=$oy;
imageline($img,$sx,$sy,$sx,$sy+$v,$clr);
imageline($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);
$sy+=$oy+$v/2;
$sx+=$ox;
imagefill($img,$sx,$sy,$clr);
}
}

function chx_getindexcolor($img,$clr){//RBG转索引色
$R=($clr>>16) & 0xff;
$G=($clr>>8)& 0xff;
$B=($clr) & 0xff;
return imagecolorallocate($img,$R,$G,$B);
}

?>

+--------------------------+
| pie3d.php //三维饼图文件 |
+--------------------------+

require("pie3dfun.php");

$a=150;//椭圆长半轴
$b=50;//椭圆段半轴
$v=20;//圆饼高度
$font=5;//字体

$ox=5+$a;
$oy=5+$b;
$fw=imagefontwidth($font);
$fh=imagefontheight($font);


$datLst=array(30,10,20,20,10,20,10,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;
$h=10+$b*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($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);
$ly+=$fh+2;
}
//输出图形
header("Content-type:image/gif");
imagegif($img);

?>



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membuka fail img Bagaimana untuk membuka fail img Sep 18, 2023 am 09:40 AM

Kaedah untuk membuka fail img termasuk menggunakan perisian pemacu optik maya, menggunakan perisian pemampatan dan menggunakan alat khas. Pengenalan terperinci: 1. Gunakan perisian pemacu optik maya untuk membuka, memuat turun dan memasang perisian pemacu optik maya, klik kanan fail img, pilih "Buka dengan" atau "Program Bersekutu", pilih perisian pemacu optik maya yang dipasang dalam pop timbul kotak dialog -up, maya Perisian pemacu optikal secara automatik akan memuatkan fail img dan menggunakannya sebagai imej cakera dalam pemacu optik maya Klik dua kali pada ikon cakera dalam pemacu optik maya untuk membuka fail img dan mengakses kandungannya. dll.

Bagaimana untuk membuka fail img Bagaimana untuk membuka fail img Jul 06, 2023 pm 04:17 PM

Cara membuka fail img: 1. Sahkan laluan fail img 2. Gunakan pembuka fail img 3. Pilih kaedah pembukaan; 5. Simpan gambar; Fail img ialah format fail imej yang biasa digunakan, biasanya digunakan untuk menyimpan data gambar.

Apakah format img? Apakah format img? Mar 17, 2023 am 10:33 AM

img ialah format pemampatan fail, terutamanya digunakan untuk mencipta fail imej cakera liut Ia boleh digunakan untuk memampatkan kandungan keseluruhan cakera liut atau keseluruhan fail CD dengan sambungan ".IMG" dibuat menggunakan format fail ini. ; Fail img merangkumi 3 nod asas, iaitu "Ehfa_HeaderTag", "Ehfa_File" dan "Ehfa_Entry".

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

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

U cakera pe tidak boleh membaca img U cakera pe tidak boleh membaca img Mar 19, 2024 pm 12:07 PM

Cakera U ialah salah satu peranti storan yang kerap digunakan. Terdapat juga beberapa masalah kecil semasa digunakan. Tidak boleh membaca pemacu denyar USB? 4 langkah untuk mengajar anda cara menyelesaikan masalah dengan mudah Selepas pemacu denyar USB telah dimasukkan ke dalam komputer, klik menu Mula, pilih Panel Kawalan dan letakkannya! Tidak boleh membaca pemacu denyar USB? 4 langkah untuk mengajar anda menyelesaikan masalah dengan mudah Cari dan klik dua kali Pengurus Peranti dalam Panel Kawalan. Simpankan! Tidak boleh membaca pemacu kilat USB? 4 langkah untuk mengajar anda menyelesaikan masalah dengan mudah. ​​Cari pengawal bas bersiri universal pada antara muka utama pengurus peranti dan letakkannya! Tidak boleh membaca pemacu kilat USB? 4 langkah untuk mengajar anda cara mencari peranti storan massa USB dengan mudah, pilihnya, klik kanan, cari Nyahpasang dan letakkannya! Tidak boleh membaca pemacu kilat USB? 4 langkah untuk mengajar anda cara menyelesaikan masalah dengan mudah Selamat tinggalkan mesej untuk perbincangan!

Bagaimana untuk menukar atribut src img dalam jquery Bagaimana untuk menukar atribut src img dalam jquery Mar 03, 2022 pm 03:41 PM

Cara menukar atribut img src dalam jquery: 1. Gunakan atribut attr(), sintaks "$("img").attr("src","Alamat fail imej""; prop() kaedah, sintaks " $("img").prop("src","Alamat fail imej").

在html中图像标签是什么意思 在html中图像标签是什么意思 Mar 04, 2021 pm 02:37 PM

在html中,图像标签是指用于定义图像的标签,即“”标签。img元素可以向网页中嵌入一幅图像,“”标签的作用是为被引用的图像创建占位符,将图像链接到HTML页面上;img标签使用src属性来规定显示图像的URL,语法“”。

Bagaimana untuk menangani herotan css img Bagaimana untuk menangani herotan css img Sep 13, 2021 am 11:34 AM

Penyelesaian kepada herotan css img: 1. Buka fail css yang sepadan 2. Tetapkan "object-fit:none;" untuk mengekalkan panjang dan lebar kandungan elemen asal.

See all articles