亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP繪圖對象結構設計與應用實例

2019-09-08 23:11:34
字體:
來源:轉載
供稿:網友

本文主要闡述如何在PHP中實現繪圖對象的結構設計。

   在PHP中小型的數據結構可由簡單類來實現,即由簡單的數據和操作來定義。但隨著數據結構的復雜化,簡單類不能滿足完整體現整個數據結構的需求,由此需要使用類的結構,一句話來描述就是類中的成員也由類來構成。這是面向對象設計方法實現對數據封裝、信息隱藏及代碼重用的擴展方式,而另一種方式就是類的繼承。
本文主要討論類的結構。

   以繪圖為例,我們來看關于幾何圖形的簡單例子。
   幾何圖形包含一系列的點,線,面等,而由一些幾何公理可知點是其中最基本的構成元素。所以,我們以點作為設計的基本對象,由此來描述線和面對象。用來舉例說明類結構的實現方式。

分析
   假設點位于某一平面內,在確定了坐標系之后(即給定了原點和坐標軸及其正方向),我們便可以用坐標位置來描述這個點,如圖:

   直線是由兩點來確定的,所以由起始和終止兩點便可確定一條線段。如圖:

   面 ――(不妨舉例)矩形,由兩條平行對邊構成,且相鄰兩邊夾角為90度。繪圖時發現,矩形可由對角的兩點唯一確定。如圖:

   基于上述分析,我們開始設計:點類,線類,面類。線和面類中的數據成員包含點類,這就是類的結構,從而由簡單類構成復雜類。
設計如下:

   從另一個角度考慮,如果不采用類的結構設計方法,一個沒有層次的類可能是這樣的,以Line為例:

   一個簡單類,想法是:成員變量代表確定此線段的兩個點的坐標(x1,y1),(x2,y2)。

   對比兩種設計,Line_Bad帶來的結果是維護和更改不便,因為沒有層次。首先需要維護的成員變量多,四個;若需要設置線段中點的顏色,Line_Bad則需要增加成員函數;若需要將這直線改成三維空間的,Line_Bad則需要增加成員變量,然后修改所有的成員函數。而用Line類則避免了這樣的麻煩,設置顏色只需調用Point的方法就可以完成;而改成三維空間,只需增加Point的屬性(z坐標)就可以了。而Line類本身幾乎不用做任何改動(與PHP的繪圖函數有關),省了不少維護修改的力氣吧 :)。



   現在繪圖的基礎有了,我們就來舉一個實際的應用例子。

   在許多統計中常需要用圖例來顯示各類統計結果,我們就用上面設計的繪圖類來實現柱狀圖的顯示。

分析:
   柱狀圖主要由坐標軸和柱體構成。坐標軸可由Line類顯示,柱體可由Rectangle類顯示。

顯示坐標軸如下:

function DrawAxes()
{
$vertspan=200;

$p1=new Point(10,$vertspan+2.5);
$p2=new Point(10,2.5);

$VerticalAxis=new Line($p1,$p2);
$VerticalAxis->Draw();

$p1=new Point(7.5,$vertspan);
$p2=new Point(370,$vertspan);

$HorizontalAxis=new Line($p1,$p2);
$HorizontalAxis->Draw();

}





顯示柱體如下:
function Plot($arr_barTotal)
{
$vertspan=200;
//顯示比例
$scaleHeight=190;
//確定柱狀中最大值
$maxTotal=Max1(&$arr_barTotal);
//確定柱體個數
$total=count($arr_barTotal);

//循環顯示柱狀體
$dx=15;
$x=10+$dx;

for($i=0;$i<$total;$i++)
{
$rectHeight=($arr_barTotal[$i]/$maxTotal)*$scaleHeight;

$p1=new Point($x,$vertspan-$rectHeight);
$p2=new Point($x+$dx,$vertspan);

$CurrRect= new Rectangle($p1,$p2);
$CurrRect->Draw();

$x+=2.0*$dx;
}
}


主程序:
1) 確定顯示數據。
2) 顯示坐標軸。
3) 顯示柱狀體。


//main
$arr_barTotal=array('1','3','34','23','5','25','7'); //顯示數據
DrawAxes(); //畫坐標軸
Plot($arr_barTotal); //畫柱狀體



這樣主程序框架就完成了:D
效果如下。

如需進一步美化工作,大家可自行添加基礎顯示類中相應的屬性及相應的成員函數,這里就不多述了。

附:因為篇幅問題,沒有附上源碼。
本文中所有代碼可在http://10.31.172.7/cgi-bin/cvsweb.cgi/kai/graph/中獲得,并已在php4.0.2+Gd1.62環境下調試通過。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电影中文 亚洲精品乱码| 国产精品美女主播| 亚洲精品国偷自产在线99热| 日韩欧美国产一区二区| 亚洲欧美日本精品| 精品福利在线观看| 久久久999精品视频| 国产亚洲精品高潮| 亚洲精品有码在线| 欧美xxxwww| 精品久久久久久久中文字幕| 亚洲情综合五月天| 欧美国产日韩视频| 久久久精品免费| 欧美交受高潮1| 伊人久久大香线蕉av一区二区| 久久琪琪电影院| 26uuu亚洲伊人春色| 亚洲精品免费一区二区三区| 国产综合视频在线观看| 成人网址在线观看| 国内揄拍国内精品| 亚洲精品www久久久| 亚洲成人久久久| 亚洲欧美福利视频| 国产一区二区三区欧美| 亚洲欧美精品一区二区| 精品一区二区三区四区在线| 欧美午夜丰满在线18影院| 九九热99久久久国产盗摄| 久久不射电影网| 国产精品第一页在线| 成人精品久久av网站| 免费91在线视频| 尤物九九久久国产精品的特点| 久久久久成人精品| 欧美性生交大片免网| 国产视频久久久| 日本韩国在线不卡| 中文国产亚洲喷潮| 久热精品视频在线免费观看| 国产精品视频色| 亚洲精品久久视频| **欧美日韩vr在线| 国产亚洲视频在线| 国产91精品不卡视频| 国产午夜精品美女视频明星a级| 日韩欧美一区二区三区| 亚洲国产美女久久久久| 97精品在线视频| 亚洲成年人在线播放| 欧美一区亚洲一区| 色婷婷久久av| 日韩欧美高清在线视频| 国产精品白嫩初高中害羞小美女| 欧美日韩高清在线观看| 亚洲欧美自拍一区| 国产精品高清网站| 国产精品吊钟奶在线| 亚洲欧美在线磁力| 亚洲精品suv精品一区二区| 精品国产乱码久久久久久婷婷| 欧美一级视频在线观看| 久久91精品国产91久久久| 国产精品扒开腿做| 日本亚洲欧美成人| 91久久国产综合久久91精品网站| 亚洲老司机av| 国产亚洲激情在线| 欧美黑人xxxx| 精品久久久久久久久久久久| 美女视频久久黄| 久久精品精品电影网| 日韩av中文字幕在线播放| 在线播放国产一区中文字幕剧情欧美| 日韩视频亚洲视频| 95av在线视频| 26uuu日韩精品一区二区| 国产精品第一页在线| 久久夜色精品国产亚洲aⅴ| 日韩av中文字幕在线免费观看| 欧美第一黄网免费网站| 国产精品久久久999| 欧美特级www| 91香蕉嫩草影院入口| 91视频国产高清| 日韩精品久久久久| 日本不卡高字幕在线2019| 国产精品av电影| 91久久久久久久久| 日韩精品视频在线观看网址| 久久九九精品99国产精品| 日韩免费电影在线观看| 欧美在线视频观看免费网站| zzjj国产精品一区二区| 国产高清在线不卡| 国产丝袜一区二区| 成人观看高清在线观看免费| 91亚洲精华国产精华| 亚洲精品一区在线观看香蕉| 中文字幕精品久久久久| 国产精品高潮呻吟久久av无限| 亚洲xxxx妇黄裸体| 久久久久久999| 亚洲激情在线观看| 久久久久久国产精品三级玉女聊斋| 91久久精品久久国产性色也91| 欧美三级免费观看| 久久久www成人免费精品张筱雨| 亚洲无限av看| 亚洲一区二区三区成人在线视频精品| 欧美日韩国产在线| 日韩欧美精品中文字幕| 国产日韩欧美日韩大片| 欧美国产日韩在线| 最近2019年日本中文免费字幕| 亚洲第一页在线| 少妇精69xxtheporn| 一区二区三区四区在线观看视频| 91亚洲va在线va天堂va国| 国产一区二区在线免费| 91久久精品国产91性色| 国产精品96久久久久久| 亚洲视频综合网| 国产精品久久久久久久久免费| 日韩在线观看高清| 日韩网站在线观看| 日韩高清av在线| 亚洲人精品午夜在线观看| 欧美日韩一区二区免费在线观看| 欧美日韩一区二区三区| 一本色道久久综合狠狠躁篇的优点| 国产精品视频网| 国产精品99导航| 777午夜精品福利在线观看| 亚洲精品一区二区在线| 98视频在线噜噜噜国产| 国产91在线播放九色快色| 日韩国产在线看| 92版电视剧仙鹤神针在线观看| 亚洲欧美日韩成人| 亚洲精品久久久久久久久久久久| 国产精品∨欧美精品v日韩精品| 欧美区在线播放| 国产精品国产三级国产专播精品人| 国产精品免费久久久| 国产91网红主播在线观看| 国产欧美va欧美va香蕉在| 欧美日韩亚洲精品内裤| 97在线看免费观看视频在线观看| 国产精品爽爽爽| 日韩久久精品成人| 欧美成人国产va精品日本一级| 一本色道久久88亚洲综合88| 狠狠综合久久av一区二区小说| 亚洲精品在线观看www| 2018国产精品视频| 亚洲精品中文字幕女同| 久久久午夜视频| 成人黄色网免费| 久久亚洲国产精品| 国产三级精品网站| 最新中文字幕亚洲| 久久久成人精品视频|