狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當(dāng)前位置:系統(tǒng)之家 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

PHP繪圖對(duì)象結(jié)構(gòu)設(shè)計(jì)與應(yīng)用案例

PHP繪圖對(duì)象結(jié)構(gòu)設(shè)計(jì)與應(yīng)用案例

更新時(shí)間:2024-04-09 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

本文主要闡述如何在PHP中實(shí)現(xiàn)繪圖對(duì)象的結(jié)構(gòu)設(shè)計(jì)。

在PHP中小型的數(shù)據(jù)結(jié)構(gòu)可由簡(jiǎn)單類來(lái)實(shí)現(xiàn),即由簡(jiǎn)單的數(shù)據(jù)和操作來(lái)定義。但隨著數(shù)據(jù)結(jié)構(gòu)的復(fù)雜化,簡(jiǎn)單類不能滿足完整體現(xiàn)整個(gè)數(shù)據(jù)結(jié)構(gòu)的需求,由此需要使用類的結(jié)構(gòu),一句話來(lái)描述就是類中的成員也由類來(lái)構(gòu)成。這是面向?qū)ο笤O(shè)計(jì)方法實(shí)現(xiàn)對(duì)數(shù)據(jù)封裝、信息隱藏及代碼重用的擴(kuò)展方式,而另一種方式就是類的繼承。
本文主要討論類的結(jié)構(gòu)。

以繪圖為例,我們來(lái)看關(guān)于幾何圖形的簡(jiǎn)單例子。
幾何圖形包含一系列的點(diǎn),線,面等,而由一些幾何公理可知點(diǎn)是其中最基本的構(gòu)成元素。所以,我們以點(diǎn)作為設(shè)計(jì)的基本對(duì)象,由此來(lái)描述線和面對(duì)象。用來(lái)舉例說(shuō)明類結(jié)構(gòu)的實(shí)現(xiàn)方式。

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

直線是由兩點(diǎn)來(lái)確定的,所以由起始和終止兩點(diǎn)便可確定一條線段。如圖:

面 ——(不妨舉例)矩形,由兩條平行對(duì)邊構(gòu)成,且相鄰兩邊夾角為90度。繪圖時(shí)發(fā)現(xiàn),矩形可由對(duì)角的兩點(diǎn)唯一確定。如圖:

基于上述分析,我們開始設(shè)計(jì):點(diǎn)類,線類,面類。線和面類中的數(shù)據(jù)成員包含點(diǎn)類,這就是類的結(jié)構(gòu),從而由簡(jiǎn)單類構(gòu)成復(fù)雜類。
設(shè)計(jì)如下:

從另一個(gè)角度考慮,如果不采用類的結(jié)構(gòu)設(shè)計(jì)方法,一個(gè)沒有層次的類可能是這樣的,以Line為例:

一個(gè)簡(jiǎn)單類,想法是:成員變量代表確定此線段的兩個(gè)點(diǎn)的坐標(biāo)(x1,y1),(x2,y2)。

對(duì)比兩種設(shè)計(jì),Line_Bad帶來(lái)的結(jié)果是維護(hù)和更改不便,因?yàn)闆]有層次。首先需要維護(hù)的成員變量多,四個(gè);若需要設(shè)置線段中點(diǎn)的顏色,Line_Bad則需要增加成員函數(shù);若需要將這直線改成三維空間的,Line_Bad則需要增加成員變量,然后修改所有的成員函數(shù)。而用Line類則避免了這樣的麻煩,設(shè)置顏色只需調(diào)用Point的方法就可以完成;而改成三維空間,只需增加Point的屬性(z坐標(biāo))就可以了。而Line類本身幾乎不用做任何改動(dòng)(與PHP的繪圖函數(shù)有關(guān)),省了不少維護(hù)修改的力氣吧 :)。



現(xiàn)在繪圖的基礎(chǔ)有了,我們就來(lái)舉一個(gè)實(shí)際的應(yīng)用例子。

在許多統(tǒng)計(jì)中常需要用圖例來(lái)顯示各類統(tǒng)計(jì)結(jié)果,我們就用上面設(shè)計(jì)的繪圖類來(lái)實(shí)現(xiàn)柱狀圖的顯示。

分析:
柱狀圖主要由坐標(biāo)軸和柱體構(gòu)成。坐標(biāo)軸可由Line類顯示,柱體可由Rectangle類顯示。

顯示坐標(biāo)軸如下:


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);
//確定柱體個(gè)數(shù)
$total=count($arr_barTotal);

//循環(huán)顯示柱狀體
$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) 確定顯示數(shù)據(jù)。
2) 顯示坐標(biāo)軸。
3) 顯示柱狀體。


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


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

如需進(jìn)一步美化工作,大家可自行添加基礎(chǔ)顯示類中相應(yīng)的屬性及相應(yīng)的成員函數(shù),這里就不多述了。

附:因?yàn)槠鶈栴},沒有附上源碼。
本文中所有代碼可在http://10.31.172.7/cgi-bin/cvsweb.cgi/kai/graph/中獲得,并已在php4.0.2+Gd1.62環(huán)境下調(diào)試通過。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
亚洲丝袜自拍清纯另类| 国产精品久久久久久久久图文区| 亚洲欧美成人综合| 99pao成人国产永久免费视频| 欧美视频日韩| 亚洲二区在线| 国产一区二区三区的电影| 亚洲性感美女99在线| 国内精品久久久久久久影视蜜臀 | 日本中文字幕一区二区视频 | 不卡一区在线观看| 成人免费毛片aaaaa**| 欧美一区二区三区在线播放| 99re成人在线| 亚洲欧洲精品一区二区三区波多野1战4 | 日本伊人精品一区二区三区观看方式| 日本亚洲免费观看| 久久99国产精品免费网站| 国产乱码一区二区三区| 成人激情综合网站| 欧美日韩1080p| 国产精品久久波多野结衣| 久久久久久久欧美精品| 欧美日韩精品一区二区| 精品不卡在线视频| 国产精品激情偷乱一区二区∴| 亚洲美女区一区| 日韩av成人高清| 丁香婷婷综合五月| 欧美午夜一区二区福利视频| 国产乱码精品| 欧美理论片在线| 国产精品三级电影| 丝袜a∨在线一区二区三区不卡| 国产一区二区三区久久久| 99re亚洲国产精品| 午夜亚洲激情| 精品久久国产字幕高潮| 亚洲黄色小说网站| 精品一区二区三区在线观看国产| 99riav一区二区三区| 亚洲免费网址| 精品免费视频.| 亚洲成av人在线观看| 国产999精品久久| 99精品视频免费全部在线| 欧美日韩国产一级二级| 国产精品国产三级国产aⅴ无密码| 日韩激情视频网站| 91小视频免费看| 欧洲精品视频在线观看| 国产精品久久午夜夜伦鲁鲁| 另类的小说在线视频另类成人小视频在线| 99久久精品一区| 色婷婷av一区| 国产精品人人做人人爽人人添| 极品少妇一区二区| 在线观看视频免费一区二区三区| 欧美精品在线观看一区二区| 亚洲色图欧美在线| 国产suv精品一区二区6| 久久国产直播| 中文字幕一区二区视频| 粉嫩在线一区二区三区视频| 欧美亚洲免费| 国产精品久久久久久久久动漫| 国产精品一二三四五| 久久久噜噜噜| 亚洲欧美二区三区| 99在线视频精品| 欧美日韩激情一区二区| 亚洲一区免费在线观看| 99国产精品一区| 宅男在线国产精品| 日韩国产一二三区| 国产亚洲一区在线播放| 国产精品久久一级| 99久久国产综合精品女不卡| 69堂国产成人免费视频| 免费在线看成人av| 国产精品美女久久久浪潮软件| 国产欧美精品一区二区色综合朱莉| 国产在线精品一区二区夜色| 免费日韩精品中文字幕视频在线| 国产精品初高中害羞小美女文| 9色porny自拍视频一区二区| 精品入口麻豆88视频| 国产v日产∨综合v精品视频| 欧美性感一区二区三区| 午夜久久久久久久久久一区二区| 国产日韩一区| 一区二区三区中文免费| 伊人久久成人| 亚洲日本免费电影| 国产综合自拍| 一区二区中文字幕在线| 一区在线播放| 亚洲丝袜制服诱惑| 一区二区av| 一区二区久久久久久| 国产精品久久久一区二区| 亚洲精品日产精品乱码不卡| 国产欧美一区二区三区另类精品| 亚洲欧洲制服丝袜| 99精品视频免费全部在线| 亚洲国产美女搞黄色| 久久国产一区| 久久se精品一区二区| 4438x成人网最大色成网站| 国内精品伊人久久久久影院对白| 欧美一区午夜视频在线观看| 成人h动漫精品一区二| 国产日韩欧美高清| 在线精品亚洲一区二区| 亚洲国产综合91精品麻豆| 91黄色免费观看| 韩国理伦片一区二区三区在线播放| 欧美一区二区在线播放| av不卡在线播放| 日韩理论在线观看| 久久精品日韩| 国产精品99久久久久久久女警| 久久蜜臀精品av| 亚洲精品极品| 免费在线观看视频一区| 欧美变态tickling挠脚心| 欧美日一区二区在线观看 | 亚洲精品久久久蜜桃| 3d成人h动漫网站入口| 91免费小视频| 亚洲一区二区三区三| 欧美三级一区二区| av午夜一区麻豆| 一区二区日韩av| 欧美电影一区二区| 国产精品激情电影| 天天爽夜夜爽夜夜爽精品视频| 91麻豆精品国产91久久久久| 欧美日韩一区二区三区在线观看免| 亚洲国产日日夜夜| 欧美精品一级二级三级| 国产精品v一区二区三区| 首页综合国产亚洲丝袜| 久久综合久久综合九色| 久久狠狠一本精品综合网| 成人av网站大全| 亚洲午夜视频在线观看| 精品国产一区二区三区忘忧草| 99精品国产福利在线观看免费| 久久99久久99精品免视看婷婷| 国产女人18水真多18精品一级做| 久久资源av| 91麻豆自制传媒国产之光| 日本午夜一本久久久综合| 国产欧美一区二区精品久导航| 色噜噜夜夜夜综合网| 国产一区免费视频| 国产精品正在播放| 亚洲一级二级三级在线免费观看| 精品国产在天天线2019| 91久久线看在观草草青青| 欧美日韩久久| 国产精品538一区二区在线| 亚洲高清免费观看高清完整版在线观看 | 欧美精三区欧美精三区| 国产精品嫩草99av在线| 99免费精品视频| 精品一区二区三区香蕉蜜桃| 一区二区三区四区乱视频| 久久这里只有精品视频网| 欧美午夜精品久久久| 一区二区久久| 欧美日韩精品一区| 成人三级在线视频| 激情欧美日韩一区二区| 亚洲成av人片一区二区| 亚洲欧美在线视频观看| 久久精品欧美一区二区三区麻豆| 欧美精品一二三四| 日本高清不卡aⅴ免费网站| 亚洲国产婷婷香蕉久久久久久99| av亚洲精华国产精华精| 国产中文一区二区三区| 免费人成网站在线观看欧美高清| 一区二区不卡在线播放| 亚洲特级片在线| 日本一区二区免费在线观看视频| 精品欧美乱码久久久久久| 7777精品伊人久久久大香线蕉的| 在线观看日韩一区| 久久福利一区| 久久本道综合色狠狠五月| 亚洲一区二区三区免费观看| 日韩视频一区| 国产欧美一区二区三区国产幕精品| 亚洲国产精品一区二区第一页| 国产主播一区二区三区四区| 国产字幕视频一区二区| 亚洲人成高清| 国产精品亚洲欧美|