cari

各位大神 有没有php 环形图生成程序,  就像这样子的 


回复讨论(解决方案)

你是要产生图片还是要在网页上显示
如果只是为了在网页上显示,可以使用 jqPlot、Highcharts 这类 js 图表插件来做
如果是要生成图片,可以考虑用 jpGraph。不知是否有支持你需要的样式
自己写的话也不难,就是一段段环缺计算量比较大

php运行在服务端只是提供数据,图标显示需要用到js,如上斑竹所说的库.

你说的是PHP程序画圆吧!我也做过跟你的差不多!给你个参考.....程序仅供参考!
//填充图表的参数
$ChartDiameter = 140; //图表直径
$ChartData = array(20,80);//用于生成图表的数据,可通过数据库来取得来确定也可以多个不过和颜色数组对应
$msg = '56%';

//把角度转换为弧度
function radians($degrees){
return($degrees*(pi()/180.0));
}
//取得在圆心为(0,0)圆上 x,y点的值
function circle_point($degrees,$diameter){
$x=cos(radians($degrees))*($diameter/2);
$y=sin(radians($degrees))*($diameter/2);
return array($x,$y);
}
//确定图形的大小
$ChartWidth = $ChartDiameter + 22;
$ChartHeight = $ChartDiameter + 56;
//确定统计的总数
$ChartTotal = '';
for($index = 0;$index  $ChartTotal += $ChartData[$index];
}
$ChartCenterX = $ChartDiameter/2 + 11;
$ChartCenterY = $ChartDiameter/2 + 28;
//生成空白图形
$image = imagecreatetruecolor($ChartWidth, $ChartHeight);
//分配颜色
$colorBody=imagecolorallocate($image,255,255,255);//白色
$colorBorder=imagecolorallocate($image,0,0,0);
$colorText=imagecolorallocate($image, 0, 0, 0);
$colorSlice[] = imagecolorallocate($image, 255,255,255);//这里是和你上面写的数组对应的颜色
$colorSlice[] = imagecolorallocate($image, 241,120,129);//数据完成显示的背景色
//$colorSlice[] = imagecolorallocate($image,0,0,0);//数据完成显示的背景色

//填充背境
imagefill($image, 0, 0, $colorBody);
//画每一个扇形
$Degrees = 0;
for($index = 0; $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);
//填充扇形
$tempnum = $EndDegrees - $startDegrees;
$MidPoint = round(($tempnum/2)+$startDegrees); 
list($ArcX, $ArcY) = circle_point($MidPoint, $ChartDiameter/2);
imagefilltoborder($image,floor($ChartCenterX + $ArcX),floor($ChartCenterY + $ArcY),
$CurrentColor,$CurrentColor);
}
$red = imagecolorallocate($image,255,0,0);//分配红色
$white = imagecolorallocate($image,255,255,255);//分配白色
imagefilledellipse($image,81,98,120,120,$red);
$font = 'simhei.ttf';
imagettftext($image, 20,0, 63, 108, $white, $font,$msg);

//到此产生了一幅图像,把它发到浏览器上,重要是要将标头发给浏览器,让它知道是一个GIF文件。
header("Content-type: image/png");
imagegif($image);
imagedestroy($image);
?>

补充一下有个simhei.ttf是字体文件需要下载,可以问我要!

还有就是你说的这个图,控制画图的半径,控制每个扇形的起始点,这就需要你去想想算法了!

问题已解决, 谢谢各位. 

Kenyataan
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
E-mel PHP: Panduan Penghantaran Langkah demi LangkahE-mel PHP: Panduan Penghantaran Langkah demi LangkahMay 09, 2025 am 12:14 AM

PhpisusedforsendingemailsduetoitsintegrationWithservermailservicesandexternalsmtpproviders, automatingnotificationsandmarketingcampaigns.1) Setupyourphpenvironmentwithawebserverandphp, Memastikan

Cara Menghantar E -mel melalui PHP: Contoh & KodCara Menghantar E -mel melalui PHP: Contoh & KodMay 09, 2025 am 12:13 AM

Cara terbaik untuk menghantar e -mel ialah menggunakan perpustakaan phpmailer. 1) Menggunakan fungsi mel () adalah mudah tetapi tidak boleh dipercayai, yang boleh menyebabkan e -mel memasuki spam atau tidak dapat dihantar. 2) PHPMailer menyediakan kawalan dan kebolehpercayaan yang lebih baik, dan menyokong surat HTML, lampiran dan pengesahan SMTP. 3) Pastikan tetapan SMTP dikonfigurasi dengan betul dan penyulitan (seperti startTLS atau SSL/TLS) digunakan untuk meningkatkan keselamatan. 4) Untuk sejumlah besar e -mel, pertimbangkan untuk menggunakan sistem giliran mel untuk mengoptimumkan prestasi.

E -mel PHP Lanjutan: Headers & Ciri -ciri KustomE -mel PHP Lanjutan: Headers & Ciri -ciri KustomMay 09, 2025 am 12:13 AM

CustomheadersandadvancedfeaturesInphpeMailenhanceFunctialityandreliability.1) customHeadersAddmetadataFortrackingandCategorization.2) htmlemailsallowformattingIntivity.3)

Panduan untuk menghantar e -mel dengan PHP & SMTPPanduan untuk menghantar e -mel dengan PHP & SMTPMay 09, 2025 am 12:06 AM

Menghantar mel menggunakan PHP dan SMTP boleh dicapai melalui Perpustakaan PHPMailer. 1) Pasang dan konfigurasikan PHPMailer, 2) Tetapkan butiran pelayan SMTP, 3) Tentukan kandungan e -mel, 4) Hantar e -mel dan mengendalikan kesilapan. Gunakan kaedah ini untuk memastikan kebolehpercayaan dan keselamatan e -mel.

Apakah kaedah terbaik untuk menghantar e -mel menggunakan php?Apakah kaedah terbaik untuk menghantar e -mel menggunakan php?May 08, 2025 am 12:21 AM

Thebestapproachforsendingemailsinphpisusingthephpmaillibraryduetoitsreliability, featureRichness, andeaseofuse.phpmailersupportssmtp, proveddetaileDerrorHandling, membolehkanSendsendingHtmlandPlainteMails, supportsattachments, danStoVeShanCess

Amalan terbaik untuk suntikan ketergantungan dalam phpAmalan terbaik untuk suntikan ketergantungan dalam phpMay 08, 2025 am 12:21 AM

Alasan untuk menggunakan suntikan ketergantungan (DI) ialah ia menggalakkan gandingan longgar, kebolehlihatan, dan pemeliharaan kod. 1) Gunakan pembina untuk menyuntik kebergantungan, 2) Elakkan menggunakan pencari perkhidmatan, 3) Gunakan bekas suntikan ketergantungan untuk menguruskan kebergantungan, 4) meningkatkan kesesuaian melalui suntikan suntikan, 5) Elakkan kebergantungan over-suntikan, 6) Pertimbangkan kesan DI terhadap prestasi.

Petua Penalaan Prestasi PHPPetua Penalaan Prestasi PHPMay 08, 2025 am 12:20 AM

Phpperformancetuningiscrucialbecauseitenhancesspeedandeficiency, whoarevitalforwebapplications.1) cachingwithapcureSdatabaseloadandimprovesresponsetimes.2)

Keselamatan e -mel PHP: Amalan terbaik untuk menghantar e -melKeselamatan e -mel PHP: Amalan terbaik untuk menghantar e -melMay 08, 2025 am 12:16 AM

TthebestpracticesforDailssecureeleynpinceDudududude: 1) usingSecureConfigurationsatiationswithsmtpandStartTartTlSencrryption, 2) vactrentatiatingIsTitionputStopReventInJectaCtAtactaSs, 3) engrypTyptingSensensitiVIdAdAlsHAlSiSsSenSsensSl ,SsengsSenSsensSl ,SsengSiSsSSSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSssSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSSSSsSSSSSSSSSHAsSsSSSSSHAsSsSengs.)

See all articles

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.