專利名稱::基于Web的虛擬植物可視化系統(tǒng)及虛擬植物構(gòu)建方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)技術(shù),植物仿真技術(shù),尤其涉及計(jì)算機(jī)網(wǎng)絡(luò)和數(shù)據(jù)分布式存儲(chǔ)技術(shù)。
背景技術(shù):
:虛擬植物生長(zhǎng)是指在計(jì)算機(jī)上形象直觀地再現(xiàn)植物的生長(zhǎng)過(guò)程。利用虛擬植物技術(shù),可以在電腦屏幕上設(shè)計(jì)農(nóng)作物,然后再進(jìn)行實(shí)際培育或用基因工程技術(shù)繁殖出真實(shí)的農(nóng)作物,使其新品種具有模擬植物的理想性狀。虛擬植物的研究起源于1968年美國(guó)生物學(xué)家Lindenmayer(1925-1989)在生物雜志發(fā)表了"MathematicalModelsforCellInteractionsinDevelopment"的論文,首次提出了"字符重寫系統(tǒng)(Stringrewrittingsystem)"的概念,為了紀(jì)念這位生物學(xué)家,稱為L(zhǎng)系統(tǒng),主要研究植物的器官(主干,枝條,葉,花)等之間的相互關(guān)系。帶參數(shù)的L系統(tǒng)定義為一個(gè)有序四元組G^「,S,",",其中,「表示系統(tǒng)中的字母集;2表示形式參數(shù)集,^Z)表示一個(gè)帶參數(shù)的邏輯表達(dá)式,^2)表示一個(gè)帶參數(shù)的算術(shù)表達(dá)式。在這些表達(dá)式中可以使用算術(shù)運(yùn)算符如+、-、*、八—,關(guān)系運(yùn)算符,如>、〉=、〈、<=、==,和邏輯運(yùn)算符,如!、&&、ll和括號(hào)(),表達(dá)式中還可以包含函數(shù)調(diào)用;表示非空參數(shù)單詞,稱為公理,其中R是實(shí)數(shù)集合;;^(Kx2T)xC(2:)x("Ea:)T表示規(guī)則集合。改寫規(guī)則的格式如下/7^/:c。m/4^cc其中pm/表示前趨,cow/表示條件,^cc表示后繼,例如.爿0):O5—5"+l)C(^0.5,卜2)。對(duì)于L系統(tǒng)本身來(lái)說(shuō),如上所示只是一種形式化語(yǔ)言。經(jīng)過(guò)產(chǎn)生式迭代產(chǎn)生的結(jié)果也只是一系列的字符串,其本身并不具備任何幾何意義。為此,科學(xué)家引入一種稱為"龜形幾何"(TurtleGeometry)的數(shù)學(xué)知識(shí)概念,通過(guò)對(duì)字符串進(jìn)行龜形解釋即可生成一系列復(fù)雜的圖形。二維情況4下,烏龜?shù)漠?dāng)前狀態(tài)可用一個(gè)三元組〈x,y,"〉表示,其中(x,y)表示烏龜?shù)漠?dāng)前位置,"表示烏龜?shù)某?Heading)即烏龜?shù)呐佬蟹较?,每次響?yīng)動(dòng)作后該狀態(tài)都會(huì)改變。本系統(tǒng)采用的龜圖命令如下RU,RR,RH為方向符號(hào)(RH為生長(zhǎng)方向,即龜?shù)某?,分別表示繞5,反,S旋轉(zhuǎn)(如圖l),帶一個(gè)參數(shù),表旋轉(zhuǎn)的角度,順時(shí)針為正,逆時(shí)針為負(fù);'['、']'為分枝符號(hào),即遇到'['時(shí)龜圖將壓棧保存當(dāng)前的狀態(tài),遇到。'時(shí)將彈?;謴?fù)上次壓棧信息,以實(shí)現(xiàn)植物的分枝;其它字符可分為兩類臨時(shí)變量和器官變量,其中臨時(shí)變量為產(chǎn)生式的中間迭代信號(hào)量,未綁定任何器官信息,沒(méi)有幾何意義,而器官變量則有器官綁定信息,表示特定器官,有幾何意義。如虛擬植物所得字符串為A[RU(45)B]C[RU(-45)D]E,其中A,B,C,D,E均綁定為線器官,則經(jīng)過(guò)龜形幾何解釋后其三維渲染結(jié)果如圖2。從A出發(fā),遇到'[',將龜當(dāng)前信息壓棧(即分枝);遇到'RU(45)',將龜繞5軸旋轉(zhuǎn)45度,遇到B,按旋轉(zhuǎn)后的龜5方向畫一直線;遇到']',彈出棧信息(即分枝完畢),回到畫A后的龜狀態(tài);遇到C,在A后畫一直線;遇到'[',將畫C后的龜信息壓棧;遇到'RU(-45),,將龜繞5軸旋轉(zhuǎn)-45度,遇到D,按旋轉(zhuǎn)后的龜5方向畫一直線;遇到T,彈出棧信息(即分枝完畢),回到畫C后的龜狀態(tài);最后遇到'E',在當(dāng)前龜狀態(tài)后往5方向畫一直線。在獲得植物生長(zhǎng)過(guò)程中發(fā)生的形態(tài)結(jié)構(gòu)以及生態(tài)生理變化等特性后,應(yīng)用L系統(tǒng)建模方法對(duì)植物建立相應(yīng)數(shù)學(xué)模型,通過(guò)編程平臺(tái)綜合運(yùn)用各算法將植物生長(zhǎng)幾何信息轉(zhuǎn)化為直觀的圖形信息,在構(gòu)建植物生長(zhǎng)模型時(shí)考慮其形態(tài)結(jié)構(gòu)與生理功能交互關(guān)系,建立了虛擬植物模擬模型,并基于圖形技術(shù)建立了植物形態(tài)的可視化模型,通過(guò)模型耦合構(gòu)建出虛擬植物系統(tǒng)。該系統(tǒng)能夠較好地模擬植物的生長(zhǎng)過(guò)程。例如唐衛(wèi)東等基于0pen-L系統(tǒng)的植物結(jié)構(gòu)功能模型研究2007引入了Open-L系統(tǒng)建模理論,在植物形態(tài)發(fā)生模型的基礎(chǔ)上,根據(jù)植物生長(zhǎng)時(shí)其形態(tài)與生理特性及環(huán)境之間的相互作用,構(gòu)建了綜合考慮植物結(jié)構(gòu)與功能的虛擬植物模型,再根據(jù)該模型有效組織了植物生長(zhǎng)過(guò)程中的數(shù)據(jù)信息,并建立植物生長(zhǎng)的可視化流程。例如L-studio加拿大Calgary大學(xué),AMAP法國(guó)的系列軟件,以及GreenLab中科院自動(dòng)化所等?,F(xiàn)有系統(tǒng)沒(méi)有引入數(shù)據(jù)庫(kù)功能對(duì)數(shù)據(jù)進(jìn)行分門別類的存儲(chǔ)管理,創(chuàng)建的植物器官三維模型也只能夠用于一個(gè)虛擬植物,無(wú)法重復(fù)使用創(chuàng)建的器官模型,也無(wú)法向其他用戶提供共享;所創(chuàng)建的虛擬植物只能以文件的方式共享給其他用戶,當(dāng)前系統(tǒng)的使用者需要將保存了虛擬植物的文件傳遞給其他用戶,如果大量異地用戶對(duì)該文件都有訪問(wèn)需求,這種方式顯然無(wú)法勝任;其次現(xiàn)有系統(tǒng)在利用L系統(tǒng)展示植物生長(zhǎng)過(guò)程時(shí)沒(méi)有保存不同生命周期的數(shù)據(jù),如果需要重復(fù)展示必需重新編譯文法;最后采用現(xiàn)有技術(shù)構(gòu)建的系統(tǒng)不能跨平臺(tái)運(yùn)行。
發(fā)明內(nèi)容本發(fā)明針對(duì)現(xiàn)有虛擬植物可視化系統(tǒng)的上述缺陷,提出了一種基于Web的虛擬植物可視化系統(tǒng)。本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案是,建立基于Web的虛擬植物可視化系統(tǒng),包括,植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)、虛擬植物器官數(shù)據(jù)庫(kù)、虛擬植物數(shù)據(jù)庫(kù)、提交植物生理數(shù)據(jù)web應(yīng)用模塊、提交植物器官模型web應(yīng)用模塊、構(gòu)造虛擬植物的web應(yīng)用模塊和虛擬植物3D展示瀏覽器插件??蛻舳送ㄟ^(guò)web瀏覽器的提交植物生理數(shù)據(jù)web應(yīng)用模塊以文字形式提交植物生理數(shù)據(jù),將上述文字形式的植物生理數(shù)據(jù)翻譯成可編譯的L文法,保存在植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù),客戶端通過(guò)提交植物器官模型web應(yīng)用模塊將器官3D模型保存到虛擬植物器官庫(kù)中;根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)中的數(shù)據(jù)生成虛擬植物庫(kù)所需的L系統(tǒng)產(chǎn)生式集合,采用L文法字符串形式描述植物的屬性構(gòu)建虛擬植物庫(kù);根據(jù)虛擬植物庫(kù)中植物模型中L文法字符串、器官綁定信息CurBindlnfo及所需器官模型CurOrgModd以龜圖形式對(duì)其進(jìn)行幾何圖形描述,實(shí)現(xiàn)植物從字符串到幾何圖形的三維渲染展示,通過(guò)瀏覽器插件遠(yuǎn)程?hào)丝刺摂M植物的生長(zhǎng)過(guò)程。且可以單步或動(dòng)畫反復(fù)査看植物的不同周期的狀態(tài)。各個(gè)web應(yīng)用模塊和瀏覽器插件通過(guò)網(wǎng)絡(luò)和標(biāo)準(zhǔn)接口訪問(wèn)網(wǎng)絡(luò)服務(wù)器上的各類數(shù)據(jù)庫(kù),實(shí)現(xiàn)了數(shù)據(jù)的分布式共享。本發(fā)明還提出了一種基于Web的虛擬植物構(gòu)建方法,具體包括步驟,客戶端通過(guò)提交植物生理數(shù)據(jù)web應(yīng)用模塊以文字形式提交植物生理數(shù)據(jù),將上述文字形式的植物生理數(shù)據(jù)翻譯成可編譯的L文法,保存在植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)中;提交植物器官模型web應(yīng)用模塊將器官3D模型保存到虛擬植物器官庫(kù)中;構(gòu)造虛擬植物的web應(yīng)用模塊根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)中的數(shù)據(jù)生成虛擬植物庫(kù)所需的L系統(tǒng)產(chǎn)生式集合,采用字符形式描述植物的屬性構(gòu)建虛擬植物庫(kù);根據(jù)虛擬植物庫(kù)中植物模型中當(dāng)前L文法字符串CurLStr、當(dāng)前器官綁定信息CurBindlnfo及當(dāng)前所需器官模型CurOrgModd以龜圖原理對(duì)其進(jìn)行幾何圖形解釋,實(shí)現(xiàn)植物從字符串到幾何圖形的三維渲染展示,査看虛擬植物的生長(zhǎng)過(guò)程。生成L系統(tǒng)產(chǎn)生式集合的步驟為根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)的OrganDesp字段依次把植物器官用字符串String類型的標(biāo)識(shí)符代替,并保存在String對(duì)象數(shù)組中;根據(jù)PlantAge字段定義植物壽命;AxiomDesp字段定義公理,根據(jù)ReguDesp字段定義產(chǎn)生式集合,對(duì)L系統(tǒng)進(jìn)行驗(yàn)證并生成對(duì)象,建立字符集與虛擬植物器官庫(kù)中三維模型一一映射關(guān)系,并保存在散列對(duì)象Map中。在對(duì)L系統(tǒng)進(jìn)行驗(yàn)證并生成對(duì)象過(guò)程中,如果環(huán)境描述字段EnviDesp或生理參數(shù)描述字段PhysiologyDesp為離散數(shù)據(jù),歸一化并進(jìn)行擬合,保存在生理環(huán)境散列對(duì)象ErwMap或生理數(shù)據(jù)散列對(duì)象PhysiologyMap中,否則保存在器官散列對(duì)象中。本發(fā)明能夠通過(guò)構(gòu)建植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)、虛擬植物庫(kù)和虛擬植物器官庫(kù),對(duì)其共享實(shí)現(xiàn)對(duì)虛擬植物的遠(yuǎn)程訪問(wèn)和創(chuàng)建。并通過(guò)web應(yīng)用程序?qū)Ω黝悢?shù)據(jù)進(jìn)行遠(yuǎn)程修改和訪問(wèn),使得植物專家和計(jì)算機(jī)專家可以通過(guò)網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程的知識(shí)共享,買現(xiàn)相互的協(xié)作。虛擬植物器官庫(kù)中的三維模型能夠在網(wǎng)絡(luò)上進(jìn)行共享并多次使用,提高了構(gòu)建和演示虛擬植物的效率。虛擬植物數(shù)據(jù)庫(kù)保存了保存不同生命周期的數(shù)據(jù)提高了展示效率。圖l龜形原理圖圖2A[RU(45)B]C[RU(-45)D]E的幾何解釋圖3整體結(jié)構(gòu)圖圖4生理數(shù)據(jù)處理流程圖圖5數(shù)據(jù)維護(hù)流程圖圖6器官庫(kù)的維護(hù)流程圖圖7虛擬植物庫(kù)構(gòu)建的結(jié)構(gòu)圖圖8交互式生長(zhǎng)過(guò)程展示流程具體實(shí)施例方式本發(fā)明在Web上構(gòu)架虛擬植物可視化系統(tǒng),如圖3所示為該植物可視化系統(tǒng)結(jié)構(gòu)示意圖。包括,植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)、虛擬植物器官數(shù)據(jù)庫(kù)、虛擬植物數(shù)據(jù)庫(kù)、提交植物生理數(shù)據(jù)web應(yīng)用模塊、提交植物器官模型web應(yīng)用模塊、構(gòu)造虛擬植物的web應(yīng)用模塊,其中各類數(shù)據(jù)庫(kù)和web應(yīng)用模塊都部署于網(wǎng)絡(luò)應(yīng)用服務(wù)器上。瀏覽器插件運(yùn)行于不同用戶端的瀏覽器中,并通過(guò)網(wǎng)絡(luò)與網(wǎng)絡(luò)應(yīng)用服務(wù)器連接??蛻舳送ㄟ^(guò)web瀏覽器插件通過(guò)網(wǎng)路實(shí)現(xiàn)的上述各數(shù)據(jù)庫(kù)的分布式共享。具體流程如下所述,(1)植物專家通過(guò)客戶端向網(wǎng)絡(luò)提交生長(zhǎng)規(guī)則和生理數(shù)據(jù),計(jì)算機(jī)專家通過(guò)網(wǎng)絡(luò)獲取植物方面的專業(yè)數(shù)據(jù),并據(jù)此形成帶生理參數(shù)的L-文法。(2)客戶端計(jì)算機(jī)專家根據(jù)植物生長(zhǎng)規(guī)則和生理數(shù)據(jù)生成植物器官的3D模型,通過(guò)web應(yīng)用程序提交到虛擬植物器官庫(kù)中。其中虛擬植物器官庫(kù)從生理角度對(duì)器官進(jìn)行描述,可對(duì)器官模型進(jìn)行添加、刪除、修改和檢索。(3)構(gòu)造虛擬植物的web應(yīng)用模塊根據(jù)植物生長(zhǎng)規(guī)則、生理數(shù)據(jù)、植物器官的3D模型應(yīng)用參數(shù)的L文法與虛擬植物器官庫(kù)中的器官構(gòu)建虛擬植物,將其保存到虛擬植物庫(kù)。(4)在客戶端通過(guò)虛擬植物3D展示瀏覽器插件査看虛擬植物庫(kù)中虛擬植物的生長(zhǎng)過(guò)程。(5)交互式生長(zhǎng)過(guò)程展示植物專家或者其他用戶可以通過(guò)虛擬植物3D展示瀏覽器插件交互式查看虛擬植物庫(kù)中虛擬植物的生長(zhǎng)過(guò)程。用戶可以通過(guò)網(wǎng)頁(yè)自由設(shè)置生理參數(shù)/生長(zhǎng)函數(shù)并觀看到相應(yīng)的生長(zhǎng)過(guò)程。以下針對(duì)附圖和具體實(shí)例對(duì)實(shí)現(xiàn)上述功能的流程進(jìn)行具體描述。如圖4所示為生理數(shù)據(jù)的結(jié)構(gòu)示意圖。包括,植物專家客戶端,植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù),計(jì)算機(jī)專家客戶端。(一)生理數(shù)據(jù)的結(jié)構(gòu)與實(shí)現(xiàn)方法植物專家客戶端通過(guò)數(shù)據(jù)提交頁(yè)面的web應(yīng)用模塊提交植物生理數(shù)據(jù),將對(duì)某種植物的描述包括植物構(gòu)成器官、植物的初始狀態(tài)、植物的生長(zhǎng)規(guī)則以及植物生理環(huán)境數(shù)據(jù)以文字形式進(jìn)行提交,將其保存在植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)中。植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)按照植物的種類和名稱對(duì)不同植物的數(shù)據(jù)進(jìn)行保存。將上述文字形式的植物信息翻譯成可編譯的L文法,保存在String對(duì)象L系統(tǒng)生理規(guī)則庫(kù)中。其中,數(shù)據(jù)提交頁(yè)面、數(shù)據(jù)維護(hù)頁(yè)面、數(shù)據(jù)査看頁(yè)面和生理數(shù)據(jù)庫(kù)采用Web網(wǎng)頁(yè)的形式實(shí)現(xiàn)。①建立植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)ReguAndDataDB。客戶端通過(guò)提交植物生理數(shù)據(jù)web應(yīng)用模塊以文字形式提交植物生理數(shù)據(jù),建立植物生長(zhǎng)規(guī)則和生理數(shù)據(jù)的數(shù)據(jù)格式列表,按照L系統(tǒng)的形式化定義對(duì)植物構(gòu)成器官、植物的初始狀態(tài)、植物的生長(zhǎng)規(guī)則以及植物生理環(huán)境數(shù)據(jù)進(jìn)行描述,將上述文字形式的植物生理數(shù)據(jù)翻譯成可編譯的L文法,保存在數(shù)據(jù)列表中,形成植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)。如表1所示。9<table>tableseeoriginaldocumentpage10</column></row><table>②建立數(shù)據(jù)提交頁(yè)面,以L文法、文字形式描述植物的器官、生長(zhǎng)狀態(tài)、生長(zhǎng)規(guī)則、生理環(huán)境數(shù)據(jù)等。具體包括聲明該植物所需的器官,包括器官的生理屬性和環(huán)境因素,例如器官(莖)生理屬性(大小,長(zhǎng)度,中心位置,生長(zhǎng)位置,生長(zhǎng)方向,幾何屬性),植物壽命;描述植物的開(kāi)始生長(zhǎng)狀態(tài)。采用形式為^大小:1,長(zhǎng)度:1)[b沃小:1,長(zhǎng)度:1)],其中a,b表示聲明的器官;()里邊的內(nèi)容為對(duì)器官生理屬性的設(shè)置,分別對(duì)器官A的大小和長(zhǎng)度進(jìn)行了初始化;[]表示分枝;以文字形式描述植物生長(zhǎng)規(guī)則P,描述器官A:描述生長(zhǎng)條件B-〉描述生長(zhǎng)動(dòng)作C:表示意義為器官A在滿足生長(zhǎng)條件B的情況下執(zhí)行生長(zhǎng)動(dòng)作C。例如P:j(大小,長(zhǎng)度)A.長(zhǎng)度《5jA(大小大小+l,長(zhǎng)度長(zhǎng)度+l)或者戶J(大小,長(zhǎng)度)A.長(zhǎng)度"—D沃小l,長(zhǎng)度1),其中A(大小,長(zhǎng)度)表示器官A及該器官具有的大小和長(zhǎng)度屬性;生長(zhǎng)條件描述包括器官屬性因條件以及個(gè)體發(fā)育的環(huán)境條件,在例子中為A.長(zhǎng)度《5;生長(zhǎng)動(dòng)作描述分為兩種一種為器官木身屬性的改變,例如A(大小:大小+1,長(zhǎng)度長(zhǎng)度+l),另一種為器官被新器官替代或消失描述,例如D(大小:1,長(zhǎng)度1);生理環(huán)境數(shù)據(jù)主要說(shuō)明植物在生長(zhǎng)過(guò)程中環(huán)境的變化以及植物自身變化,例如溫度變化以及果實(shí)變化等。其中生理環(huán)境數(shù)據(jù)指影響植物個(gè)體發(fā)育的外部環(huán)境因素包括光照時(shí)間,光照強(qiáng)度,水分,溫度以及其他環(huán)境因素,生理環(huán)境數(shù)據(jù)遵循y《(t)隨時(shí)間的變化函數(shù),或者如"環(huán)境參數(shù)時(shí)間值"離散的數(shù)據(jù)。生理數(shù)據(jù)是指植物個(gè)體發(fā)育過(guò)程中自身屬性的變化情況。遵循^f(t)隨時(shí)間的變化函數(shù),或者為"器官生理參數(shù)時(shí)間值"的離散數(shù)據(jù)。在數(shù)據(jù)維護(hù)頁(yè)面,在提交完成之后客戶端可以通過(guò)數(shù)據(jù)維護(hù)頁(yè)面查看已經(jīng)提交的數(shù)據(jù)并可以進(jìn)行刪除、修改等維護(hù)操作,如圖5所示為在數(shù)據(jù)維護(hù)頁(yè)面的操作流程圖??蛻舳送ㄟ^(guò)植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)中植物專家標(biāo)識(shí)PlantUserID、保存植物名稱PlantName或標(biāo)識(shí)符ID査找生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)ReguAndDataDB,如符合要求,可對(duì)其進(jìn)行修改和刪除操作。計(jì)算機(jī)專家客戶端通過(guò)數(shù)據(jù)查看和提交頁(yè)面,把保存在生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)中的植物信息,翻譯成可編譯的L文法,保存在String對(duì)象L系統(tǒng)到生理規(guī)則庫(kù)中的LSys字段中。并可通過(guò)數(shù)據(jù)提交頁(yè)面的提交植物生理數(shù)據(jù)web應(yīng)用模塊、提交植物器官web應(yīng)用模塊將修改的數(shù)據(jù)提交到生長(zhǎng)規(guī)則庫(kù)進(jìn)行保存。(二)構(gòu)建虛擬植物器官庫(kù)根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)ReguAndDataDB的保存器官描述OrganDesp字段,進(jìn)行三維模型建模,將構(gòu)建的器官3D模型保存到虛擬植物器官庫(kù)VirtualOrganDB中。建立如表2所示結(jié)構(gòu)的虛擬植物器官庫(kù)VirtualOrganDB表。表2器官庫(kù)VirtualOrganDB的表結(jié)構(gòu),<table>tableseeoriginaldocumentpage11</column></row><table>虛擬植物器官庫(kù)保存虛擬植物三維可視化過(guò)程中所需要的植物器官三維模型,同時(shí)客戶端通過(guò)提交植物器官模型web應(yīng)用模塊讀取、保存、修改器官庫(kù)中各屬性的標(biāo)識(shí)符,實(shí)現(xiàn)對(duì)植物器官三維模型進(jìn)行讀取、保存、修改和刪除功能,如圖6所示為植物器官維護(hù)流程圖。在數(shù)據(jù)維護(hù)頁(yè)面,提交完成之后可以通過(guò)客戶端數(shù)據(jù)維護(hù)頁(yè)面查看己經(jīng)提交的數(shù)據(jù)并可以進(jìn)行刪除、修改等維護(hù)操作,根據(jù)植物器官庫(kù)的屬性參數(shù)PlantName、OrganName、OrganType或ID,在VirtualOrganDB中查找相應(yīng)的虛擬植物器官,對(duì)其進(jìn)行修改、刪除操作,然后提交到虛擬植物器官庫(kù)。(三)構(gòu)建虛擬植物庫(kù)計(jì)算機(jī)專家客戶端通過(guò)虛擬植物的web應(yīng)用模塊對(duì)己有的生理數(shù)據(jù)、虛擬植物器官庫(kù)和L系統(tǒng)進(jìn)行處理生成虛擬植物庫(kù)。具體包括,①預(yù)處理首先根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)中的數(shù)據(jù)生成虛擬植物庫(kù)所需的L系統(tǒng)產(chǎn)生式集合,其方法和流程如下根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)的OrganDesp字段依次把植物器官用字符串類型的標(biāo)識(shí)符代替,并保存在字符串對(duì)象數(shù)組organAlphabets中。organAlphabets^F。根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)的PlantAge字段定義植物壽命。例如形式為PlantAge:10。根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)的AxiomDesp字段定義公理。例如形式為^U力m:X(大小:1,長(zhǎng)度:1)[B(大小:1,長(zhǎng)度:l)]。根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)的ReguDesp字段定義產(chǎn)生式集合,每條產(chǎn)生式用{}包含。pro^"/ora:定義產(chǎn)生式集合形式為"(^'*'口:<1'^,)}{5(,),*,*,[]:〈1.0〉C柳其中(t)是參數(shù)可反應(yīng)生瑤翁數(shù)、環(huán)境參數(shù)的變化,生理參數(shù)由對(duì)象physiologyMap存儲(chǔ),環(huán)境參數(shù)X寸象envMap存儲(chǔ)。對(duì)上述參數(shù)進(jìn)行編譯。主要是對(duì)翻譯的L文法即L系統(tǒng)進(jìn)行驗(yàn)證,判斷是否符合形如12Jx/,:戸ofwcrt,:,并生成三個(gè)對(duì)象。{,*,[]:5(f)}第一個(gè)為String對(duì)象Axiom,保存L系統(tǒng)lsystem中的Axiom;第二個(gè)為String對(duì)象數(shù)組productions,保存lsystem中的productions,第三個(gè)為String對(duì)象數(shù)組有效字符集alphabets,保存lsystem中的有效字符集,alphabets;r。進(jìn)行器官綁定。V"ealphabets,如果aeorganAlphabets(器官字符集),建立有效字符集"與VirtualOrganDB中三維模型——映射關(guān)系,并在器官散列表對(duì)象organMap中保存器官綁定信息。提取生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)中的字段進(jìn)行判斷,如果保存環(huán)境數(shù)據(jù)EnviDesp字段或保存生理數(shù)據(jù)PhysiologyDesp字段為離散數(shù)據(jù),首先把數(shù)據(jù)歸一化到區(qū)間,然后進(jìn)行擬合,并在環(huán)境散列表對(duì)象ErwMap或生理參數(shù)散列表對(duì)象PhysiologyMap中保存。在提交完成之后可以通過(guò)數(shù)據(jù)維護(hù)頁(yè)面査看已經(jīng)提交的模型并可以進(jìn)行刪除、修改等維護(hù)操作。②構(gòu)建虛擬植物庫(kù)信息列表采用字符形式描述植物的名稱、壽命、年齡等屬性,構(gòu)建虛擬植物庫(kù)。虛擬植物庫(kù)(VirPlantDB)中存儲(chǔ)了所有的已經(jīng)建立的虛擬植物(VirPlant),每棵虛擬植物存儲(chǔ)在若干行中,字段VirPlant表示植物的名字。虛擬植物庫(kù)(VirPlantDB)包括字段VirPlantDB(ID,VirPlant,PlantAge,CurPeriod,CurLStr,CurBindInfo,CurOrgModel)。其表結(jié)構(gòu)定義如下表3虛擬植物庫(kù)表結(jié)構(gòu)<table>tableseeoriginaldocumentpage13</column></row><table><table>tableseeoriginaldocumentpage14</column></row><table>字段ID,標(biāo)識(shí)符,唯一標(biāo)識(shí)了一行數(shù)據(jù),該行數(shù)據(jù)表示了當(dāng)前生長(zhǎng)年齡的虛擬植物生長(zhǎng)狀態(tài)及器官綁定信息,可以供"虛擬植物3D展示瀏覽器插件"展示。字段VirPlant,是虛擬植物的名稱,用于標(biāo)識(shí)一個(gè)虛擬植物的名稱,當(dāng)需要査詢某個(gè)虛擬植物時(shí),必須提交植物名稱。字段PlantAge,是虛擬植物的壽命,是虛擬植物的最大生長(zhǎng)年齡數(shù),該數(shù)值代表了該虛擬植物在數(shù)據(jù)庫(kù)表中的存儲(chǔ)行數(shù)。字段CurPeriod,表示當(dāng)前生長(zhǎng)年齡,一個(gè)植物的所有生長(zhǎng)數(shù)據(jù)按生長(zhǎng)年齡遞增組合起來(lái),可以代表虛擬植物整個(gè)生命發(fā)育周期的生長(zhǎng)狀態(tài)信息。字段CurLStr,表示當(dāng)前L文法字符串,該字符串由參數(shù)化的L文法字符組成,代表了當(dāng)前生長(zhǎng)年齡的植物生長(zhǎng)狀態(tài)及器官信息,如有L文法字符串的形式定義LStFA(tl,t2,……ti)LStrl[C(rl,)LStr2]B(sl,s2,......si)LStr3(LStrl,LStr2,LStr3為三個(gè)子串,可為空,A,B,C為帶參數(shù)的L字符)。字段CurBindlnfo,表示當(dāng)前器官綁定信息,是一個(gè)字符串,代表了L文法字符與器官模型的映射信息。L文法字符串的字符有些需要綁定到器官模型,有些則只是一個(gè)臨時(shí)變量,不需要綁定到某個(gè)器官模型,如有這樣的綁定A(orgl)B(org2)C(org3)……,表示L字符A綁定器官模型orgl,L字符B綁定器官模型org2,L字符C綁定器官模型org3……(orgl,org2,org3為器官名稱)。字段CurOrgModel,表示當(dāng)前所需要的器官模型,屬于一個(gè)對(duì)象,代表了模型的ID、名稱、屬性和3D信息,用于3D可視化時(shí)繪制圖形。需要注意,此處只存儲(chǔ)了當(dāng)前新增的器官模型,對(duì)于該表中已經(jīng)存儲(chǔ)的器官模型,不需要再重復(fù)存儲(chǔ),如有這樣的器官模型對(duì)象OrgModd(id,org,attributes,3d—array)。虛擬植物庫(kù)提供了按照虛擬植物名稱進(jìn)行讀取和存儲(chǔ)的功能。當(dāng)提交了需要査詢的虛擬植物名稱后,虛擬植物庫(kù)將根據(jù)虛擬植物名稱查詢出虛擬植物壽命,然后虛擬植物庫(kù)根據(jù)虛擬植物名稱、植物壽命兩個(gè)字段查詢出該虛擬植物的所有生長(zhǎng)年齡的數(shù)據(jù)。當(dāng)要存儲(chǔ)虛擬植物的數(shù)據(jù)到虛擬植物庫(kù)時(shí),必須指定植物的名稱和植物壽命。需要注意,虛擬植物庫(kù)會(huì)根據(jù)植物壽命,要求存儲(chǔ)所有生長(zhǎng)年齡的虛擬植物數(shù)據(jù),否則要存儲(chǔ)的虛擬植物將存儲(chǔ)失敗。③生成虛擬植物庫(kù)根據(jù)前面建立的公理"Axiom"、植物壽命"plantage"、L文法產(chǎn)生式集合"productions"、器官綁定信息"organMap"、生理環(huán)境"envMap"、生理數(shù)據(jù)"physiologyMap"、虛擬植物器官庫(kù)"VirtualOrganDB",使用"構(gòu)造虛擬植物服務(wù)程序"構(gòu)建出虛擬植物。構(gòu)建的虛擬植物存儲(chǔ)在"虛擬植物庫(kù)"(VirPlantDB)中。該虛擬植物庫(kù)的結(jié)構(gòu)如圖7所示構(gòu)造虛擬植物服務(wù)模塊根據(jù)虛擬植物器官庫(kù)的數(shù)據(jù)構(gòu)建虛擬植物,并將產(chǎn)生的虛擬植物存儲(chǔ)在虛擬植物庫(kù)中。具體步驟如下,(1)從Axiom對(duì)象中讀取構(gòu)建虛擬植物的初始公理(即植物的初始生長(zhǎng)狀態(tài)),賦給當(dāng)前L文法字符串CurLStr;將CurPeriod設(shè)為1;從organMap中讀取器官綁定信息賦給CurBindlnfo;并根據(jù)器官綁定信息從VirtualOrganDB中讀取初始器官模型作為CurOrgModel;從虛擬植物器官庫(kù)讀取植物的生長(zhǎng)壽命作為plantage;(2)將控制變量CurPeriod設(shè)為l(3)根據(jù)當(dāng)前植物的名稱,檢査CurOrgModel在當(dāng)前虛擬植物的數(shù)據(jù)行中是否已經(jīng)存儲(chǔ),如果已經(jīng)存儲(chǔ)則將(id,VirPlant,PlantAge,CurPeriod,nextid,CurLStr,CurBindlnfo)存入虛擬植物庫(kù);否則將(id,VirPlant,PlantAge,CurPeriod,nextid,CurLStr,CurBindlnfo,CurOrgModel)存入虛擬植物庫(kù);(4)從生理環(huán)境函數(shù)envMap中讀取當(dāng)前植物生長(zhǎng)的生理環(huán)境env如設(shè)當(dāng)前環(huán)境為溫度ten^20。根據(jù)envtem=20和CurLStr如設(shè)CurLSt產(chǎn)A(2)B(3,0.5)中字符匹配L文法產(chǎn)生式集合"productions"中的產(chǎn)生式設(shè)productions為15{A(t),*,*,[t>l&&tem>22]:<1.0>C(3)}{B(t,s),*,*,[t>2&&tem>18]:<1.0>C(4,size(s))};(5)器官綁定根據(jù)已經(jīng)全部匹配后得到的CurLStr和productions更新當(dāng)前CurBindlnfo和當(dāng)前CurOrgModel;(6)將控制變量CurPeriod加1;(7)判斷CurPeriod是否等于plantage,如果是則轉(zhuǎn)(8),否則轉(zhuǎn)(3);(8)該虛擬植物構(gòu)建成功,結(jié)束。對(duì)構(gòu)建的虛擬植物進(jìn)行匹配,其中匹配過(guò)程如下,查找CurLStr中所有L文法字符1—char(L文法迭代過(guò)程中的字符串中的字符),如果1—char等于某產(chǎn)生式的前趨,則檢查條件包括環(huán)境eiw是否滿足當(dāng)前L文法中產(chǎn)生式的條件cond,如果滿足則使用該產(chǎn)生式右邊的后繼替換CurLStr的當(dāng)前字符1—char,同時(shí)根據(jù)當(dāng)前產(chǎn)生式和physiologyMap修改CurLStr需要修改的參數(shù)對(duì)于此處假設(shè)的情況,顯然字符A的環(huán)境條件得不到滿足,因?yàn)楫a(chǎn)生式要求溫度大于22度,環(huán)境溫度為20度,不替換,繼續(xù)檢查A后面的字符B,所有條件都滿足,則替換,并對(duì)可賦值的參數(shù)賦值,替換并賦值后CurLStr=A(2)C(4,size(0.5)),此時(shí)假設(shè)physiologyMap為size(0.5)=0.23,則CurLSt產(chǎn)A(2)C(4,0.23);否則不替換,繼續(xù)査找1—char后面的字符。(四)虛擬植物3D展示。植物專家通過(guò)虛擬植物3D展示瀏覽器插件查找虛擬植物庫(kù),下載特定植物的數(shù)據(jù)模型到本地,并將其進(jìn)行三維渲染查看建模結(jié)果,從而減少了展示過(guò)程中通訊所消耗的時(shí)間,提高了系統(tǒng)效率。首先,植物專家通過(guò)虛擬植物3D展示瀏覽器插件的讀取功能,根據(jù)輸入的植物名稱從服務(wù)器端査找虛擬植物庫(kù)表VirPlantDB中的VirPlant字段,若存在該植物則將其所有生長(zhǎng)年齡階段的數(shù)據(jù)下載保存到本地,獲取植物模型;然后,虛擬植物3D展示瀏覽器插件根據(jù)獲得的植物模型,根據(jù)植物模型中得到的當(dāng)前L文法字符串CurLStr、當(dāng)前器官綁定信息CurBindlnfo及當(dāng)前所需器官模型CurOrgModel以龜圖原理(見(jiàn)圖l)對(duì)其進(jìn)行幾何圖形解16釋,實(shí)現(xiàn)植物從字符串到幾何圖形的三維渲染展示,査看虛擬植物的生長(zhǎng)過(guò)程。其中植物的生長(zhǎng)過(guò)程可以以單步形式(根據(jù)得到的虛擬植物的當(dāng)前年齡CurPeriod,遞增往下查找,每增加一步,CurPeriod增加l)觀看,亦可以動(dòng)畫形式(將得到的所有生長(zhǎng)年齡的植物模型數(shù)據(jù)按照當(dāng)前年齡CurPeriod的遞增順序?qū)Ω鱾€(gè)階段依次進(jìn)行龜形幾何解釋)觀看。(五)交互式生長(zhǎng)過(guò)程展示植物專家可通過(guò)虛擬植物3D展示瀏覽器插件的生長(zhǎng)交互功能在線修改植物的生長(zhǎng)函數(shù)及環(huán)境參數(shù),實(shí)現(xiàn)實(shí)時(shí)修改和觀察植物模型的三維渲染結(jié)果,其流程如圖8所示。首先,客戶端通過(guò)虛擬植物3D展示瀏覽器插件的生長(zhǎng)交互功能修改植物生長(zhǎng)的生長(zhǎng)函數(shù)及環(huán)境參數(shù),并將其提交到服務(wù)器端;然后,通過(guò)虛擬植物3D展示瀏覽器插件的讀取接口從服務(wù)端讀取指定植物的模型,將其下載保存到本地;最后,虛擬植物3D展示瀏覽器插件將對(duì)新下載的植物模型進(jìn)行再次龜圖三維渲染,用戶可實(shí)時(shí)查看因修改相關(guān)參數(shù)而得到的不同的植物建模結(jié)果,實(shí)現(xiàn)虛擬植物的在線生長(zhǎng)建模。虛擬植物模型在服務(wù)器端已全部建立好,瀏覽器插件將數(shù)據(jù)下載到本地,參數(shù)修改后的展示均可在本地完成。本發(fā)明對(duì)虛擬植物共享并實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)和創(chuàng)建,并通過(guò)web應(yīng)用程序?qū)Ω黝悢?shù)據(jù)進(jìn)行遠(yuǎn)程修改和訪問(wèn),使得植物專家和計(jì)算機(jī)專家可以通過(guò)網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程的知識(shí)共享,實(shí)現(xiàn)相互的協(xié)作。以上描述僅針對(duì)較佳實(shí)施例進(jìn)行,并不完全限制本發(fā)明,本發(fā)明的保護(hù)以權(quán)利要求書為準(zhǔn)。1權(quán)利要求1.基于Web的虛擬植物可視化系統(tǒng),包括虛擬植物器官數(shù)據(jù)庫(kù)、虛擬植物數(shù)據(jù)庫(kù)、植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)、提交植物生理數(shù)據(jù)web應(yīng)用模塊、提交植物器官模型web應(yīng)用模塊、構(gòu)造虛擬植物的web應(yīng)用模塊和虛擬植物3D展示瀏覽器插件,其特征在于,客戶端通過(guò)web瀏覽器的提交植物生理數(shù)據(jù)web應(yīng)用模塊以文字形式提交植物生理數(shù)據(jù),將上述文字形式的植物生理數(shù)據(jù)翻譯成可編譯的L文法,保存在植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù),客戶端通過(guò)提交植物器官模型web應(yīng)用模塊將器官3D模型保存到虛擬植物器官庫(kù)中;構(gòu)造虛擬植物的web應(yīng)用模塊根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)中的數(shù)據(jù)生成虛擬植物庫(kù)所需的L系統(tǒng)產(chǎn)生式集合,采用L文法字符串形式描述植物的屬性構(gòu)建虛擬植物庫(kù);根據(jù)虛擬植物庫(kù)中植物模型中L文法字符串、器官綁定信息CurBindInfo及所需器官模型CurOrgModel以龜圖形式對(duì)其進(jìn)行幾何圖形描述,實(shí)現(xiàn)植物從字符串到幾何圖形的三維渲染展示,通過(guò)瀏覽器插件遠(yuǎn)程查看虛擬植物的生長(zhǎng)過(guò)程。2.根據(jù)權(quán)利耍求l所述的虛擬植物可視化系統(tǒng),其特征在于,所述植物生理數(shù)據(jù)包括植物構(gòu)成器官、植物的初始狀態(tài)、植物的生長(zhǎng)規(guī)則以及植物生理環(huán)境數(shù)據(jù)。3.根據(jù)權(quán)利要求l所述的虛擬植物可視化系統(tǒng),其特征在于,生成L系統(tǒng)產(chǎn)生式集合具體包括根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)的保存器官描述字段依次把植物器官用L文法字符串類型的標(biāo)識(shí)符代替,并保存在L文法字符串對(duì)象數(shù)組中;根據(jù)植物壽命PlantAge字段定義植物壽命;保存初始狀態(tài)字段Axiom定義公理,根據(jù)保存規(guī)則描述ReguDesp字段定義產(chǎn)生式集合,對(duì)L系統(tǒng)進(jìn)行驗(yàn)證并生成對(duì)象,建立字符集與虛擬植物器官庫(kù)中三維模型—-…一映射關(guān)系,并保存在散列對(duì)象中。4.根據(jù)權(quán)利要求l所述的虛擬植物可視化系統(tǒng),其特征在于,瀏覽器插件通過(guò)訪問(wèn)遠(yuǎn)程服務(wù)器上的虛擬植物庫(kù)實(shí)現(xiàn)生長(zhǎng)過(guò)程的3D演示,單步或動(dòng)畫反復(fù)査看植物的不同周期的狀態(tài)。5.根據(jù)權(quán)利要求l所述的虛擬植物可視化系統(tǒng),其特征在于,根據(jù)公理、植物壽命、L文法產(chǎn)生式集合、器官綁定信息、生理環(huán)境、生理數(shù)據(jù)、虛擬植物器官庫(kù),構(gòu)造虛擬植物的web應(yīng)用模塊構(gòu)建虛擬植物庫(kù)。6.基于Web的虛擬植物構(gòu)建方法,其特征在于,客戶端通過(guò)提交植物生理數(shù)據(jù)呢b應(yīng)用模塊以文字形式提交植物生理數(shù)據(jù),將上述文字形式的植物生理數(shù)據(jù)翻譯成可編譯的L文法,保存在植物生理數(shù)據(jù)和生長(zhǎng)規(guī)則庫(kù)中,提交植物器官模型web應(yīng)用模塊將器官3D模型保存到虛擬植物器官庫(kù)中;構(gòu)造虛擬植物的web應(yīng)用模塊根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)中的數(shù)據(jù)生成虛擬植物庫(kù)所需的L系統(tǒng)產(chǎn)生式集合,采用字符形式描述植物的屬性,創(chuàng)建植物不同生長(zhǎng)周期的數(shù)據(jù),保存在虛擬植物庫(kù)中;根據(jù)虛擬植物庫(kù)中植物模型中當(dāng)前L文法字符串、器官綁定信息CurBindlnfo及器官模型CurOrgModel以龜圖形式對(duì)虛擬植物進(jìn)行幾何圖形描述,實(shí)現(xiàn)植物從字符,1—',到幾何圖形的三維渲染展示,并査看虛擬植物的生長(zhǎng)過(guò)程。7.根據(jù)權(quán)利要求6所述虛擬植物構(gòu)建方法,其特征在于,生成L系統(tǒng)產(chǎn)生式集合的歩驟具體包括根據(jù)生長(zhǎng)規(guī)則和生理環(huán)境數(shù)據(jù)庫(kù)的OrganDesp字段依次把植物器官用字符串類型的標(biāo)識(shí)符代替,并保存在字符串對(duì)象數(shù)組中;根據(jù)植物壽命字段定義植物壽命;AxiomDesp字段定義公理,根據(jù)ReguDesp字段定義產(chǎn)生式集合,對(duì)L系統(tǒng)進(jìn)行驗(yàn)證并生成對(duì)象,建立字符集與虛擬植物器官庫(kù)中三維模型一一映射關(guān)系,并保存在散列對(duì)象中。8.根據(jù)權(quán)利要求7所述虛擬植物構(gòu)建方法,其特征在于,在對(duì)L系統(tǒng)進(jìn)行驗(yàn)證并生成對(duì)象過(guò)程中,如果環(huán)境描述字段或生理參數(shù)描述字段為離散數(shù)據(jù),歸一化并進(jìn)行擬合,保存在生理環(huán)境散列對(duì)象或生理數(shù)據(jù)散列對(duì)象中,否則保存在器官散列對(duì)象中。全文摘要本發(fā)明請(qǐng)求保護(hù)虛擬植物可視化系統(tǒng)及方法,涉及計(jì)算機(jī)網(wǎng)絡(luò)和數(shù)據(jù)分布式存儲(chǔ)技術(shù),本發(fā)明針對(duì)現(xiàn)有虛擬植物可視化系統(tǒng)不支持分布式和共享等缺陷,提出了一種基于Web的虛擬植物可視化系統(tǒng)。生理數(shù)據(jù)通過(guò)網(wǎng)頁(yè)遠(yuǎn)程獲取并存入網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù)庫(kù)中;進(jìn)行三維模型建模,通過(guò)web應(yīng)用程序?qū)⑵鞴?D模型提交給網(wǎng)絡(luò)服務(wù)器并保存到器官庫(kù)中;用戶依據(jù)數(shù)據(jù)庫(kù)中的生理數(shù)據(jù)、器官模型和L-系統(tǒng)所需的文法信息,通過(guò)Web應(yīng)用程序創(chuàng)建虛擬植物不同生命周期的數(shù)據(jù)并保存在虛擬植物庫(kù)中;瀏覽器插件通過(guò)訪問(wèn)遠(yuǎn)程服務(wù)器上的虛擬植物庫(kù)實(shí)現(xiàn)生長(zhǎng)過(guò)程的3D演示。實(shí)現(xiàn)了虛擬植物庫(kù)和器官庫(kù)在網(wǎng)絡(luò)上的共享,完成了植物專家和計(jì)算機(jī)專家的知識(shí)共享和相互協(xié)作。文檔編號(hào)G06T15/00GK101577012SQ200910104108公開(kāi)日2009年11月11日申請(qǐng)日期2009年6月17日優(yōu)先權(quán)日2009年6月17日發(fā)明者驥劉,屈洪春,曾令秋,朱慶生,亮葛申請(qǐng)人:重慶大學(xué)