国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php生成扇形比例圖實例

2024-09-04 11:46:56
字體:
來源:轉載
供稿:網友

我們在很多網站會看到一些圖形的百分比顯示圖,像三個地區所占地多少或者是成績等,給大家介紹一款用php生成的扇形比例百分比顯示程序代碼,不過使用它首先得有phpGD庫支持,代碼如下:

  1. <?php 
  2. //填充圖表的參數 
  3. $ChartDiameter = 60; //圖表直徑 
  4. $ChartData = array(30,70);//用于生成圖表的數據,可通過數據庫來取得來確定也可以多個不過和顏色數組對應 
  5. //把角度轉換為弧度 
  6. function radians($degrees){return($degrees*(pi()/180.0));} 
  7. //取得在圓心為(0,0)圓上 x,y點的值 
  8. function circle_point($degrees,$diameter){$x=cos(radians($degrees))*($diameter/2);$y=sin(radians($degrees))*($diameter/2);return (array($x,$y));} 
  9. //確定圖形的大小 
  10. $ChartWidth = $ChartDiameter + 20; 
  11. $ChartHeight = $ChartDiameter + 20; 
  12. //確定統計的總數 
  13. $ChartTotal = “”; 
  14. for($index = 0;$index < count($ChartData);$index++){ 
  15. $ChartTotal += $ChartData[$index]; 
  16. $ChartCenterX = $ChartDiameter/2 + 10; 
  17. $ChartCenterY = $ChartDiameter/2 + 10; 
  18. //生成空白圖形 
  19. $image = imagecreate($ChartWidth$ChartHeight); 
  20. //分配顏色 
  21. $colorBody = imagecolorallocate($image, 0xFF, 0xFF, 0xFF); 
  22. $colorBorder = imagecolorallocate($image, 0×00, 0×00, 0×00); 
  23. $colorText = imagecolorallocate($image, 0×00, 0×00, 0×00); 
  24. $colorSlice[] = imagecolorallocate($image, 0xFF, 0×00, 0×00);//這里是和你上面寫的數組對應的顏色 
  25. $colorSlice[] = imagecolorallocate($image, 0×00, 0xFF, 0×00); 
  26. //填充背境 
  27. imagefill($image, 0, 0, $colorBody); 
  28. //畫每一個扇形 
  29. $Degrees = 0; 
  30. for($index = 0; $index < count($ChartData); $index++){ 
  31. $StartDegrees = round($Degrees); 
  32. $Degrees += (($ChartData[$index]/$ChartTotal)*360); 
  33. $EndDegrees = round($Degrees); 
  34. $CurrentColor = $colorSlice[$index%(count($colorSlice))]; 
  35. //畫圖F 
  36. imagearc($image,$ChartCenterX,$ChartCenterY,$ChartDiameter,$ChartDiameter,$StartDegrees,$EndDegrees$CurrentColor); 
  37. //畫直線 
  38. list($ArcX$ArcY) = circle_point($StartDegrees$ChartDiameter); 
  39. imageline($image,$ChartCenterX,$ChartCenterY,floor($ChartCenterX + $ArcX), 
  40. floor($ChartCenterY + $ArcY),$CurrentColor); 
  41. //畫直線 
  42. list($ArcX$ArcY) = circle_point($EndDegrees$ChartDiameter); 
  43. imageline($image,$ChartCenterX,$ChartCenterY,ceil($ChartCenterX + $ArcX), 
  44. ceil($ChartCenterY + $ArcY),$CurrentColor); 
  45. //填充扇形 
  46. $MidPoint = round((($EndDegrees – $StartDegrees)/2) + $StartDegrees); 
  47. list($ArcX$ArcY) = circle_point($MidPoint$ChartDiameter/2); 
  48. imagefilltoborder($image,floor($ChartCenterX + $ArcX),floor($ChartCenterY + $ArcY), 
  49. $CurrentColor,$CurrentColor); 
  50. //Vevb.com 
  51. //到此腳本 已經生了一幅圖像的,現在需要的是把它發到瀏覽器上,重要的一點是要將標頭發給瀏覽器,讓它知道是一個GIF文件。不然的話你只能看到一堆奇怪的亂碼 
  52. header(“Content-type: image/png”); 
  53. imagegif($image); 
  54. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石泉县| 万山特区| 温州市| 天峻县| 富阳市| 玉屏| 昌宁县| 南京市| 汉源县| 永修县| 普定县| 忻州市| 阳泉市| 桐梓县| 神木县| 卓资县| 海林市| 平果县| 德令哈市| 文成县| 长白| 岳普湖县| 宁陕县| 晋中市| 漳州市| 山阳县| 寿阳县| 东港市| 松桃| 临夏县| 柏乡县| 吉安县| 沙洋县| 黔西| 札达县| 兖州市| 奉新县| 锦屏县| 富民县| 仁布县| 仁布县|