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