国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法

      文檔序號:6339745閱讀:218來源:國知局
      專利名稱:一種基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法
      一種基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法技術(shù)領(lǐng)域
      本發(fā)明屬于虛擬現(xiàn)實、數(shù)字農(nóng)林業(yè)、數(shù)字娛樂、景觀設(shè)計等技術(shù)領(lǐng)域,特別是涉及 虛擬植物結(jié)構(gòu)的造型方法與動態(tài)展示。
      背景技術(shù)
      隨著三維顯示技術(shù)的發(fā)展,對數(shù)字環(huán)境下顯示內(nèi)容的需求迅速增加。植物作為自 然界重要的組成部分,對其造型與動畫是數(shù)字場景構(gòu)建必不可少的部分。構(gòu)造實現(xiàn)虛擬植 物三維結(jié)構(gòu)的主要方法大致上可以分為兩類。一類是手工交互方式,即通過應(yīng)用專業(yè)設(shè)計 軟件定義虛擬植物的結(jié)構(gòu)。簡單的植物結(jié)構(gòu)或者植物器官可以通過交互的方式進行手工建 模,但對于復(fù)雜的植物結(jié)構(gòu),其中可能包含成百上千萬個器官,完全用手工建模的方式是不 可行的。另一類建模方式是基于算法的模擬,自動生成植物結(jié)構(gòu)。常見的模擬算法有字符 串替換系統(tǒng)、粒子系統(tǒng)、自動機等。
      在利用算法模擬植物結(jié)構(gòu)時,共同的特點是要定義生長規(guī)則,描述不同頂芽或側(cè) 芽產(chǎn)生的分枝類別甚至包含的器官類別和個數(shù)。直觀的模擬方法是在每次迭代中對所有植 物結(jié)構(gòu)以一定順序進行遍歷,逐個更新分枝的狀態(tài)。如果所模擬的植物數(shù)量大,而且植物結(jié) 構(gòu)復(fù)雜,那么植物結(jié)構(gòu)的遍歷非常耗費計算時間,難以進行結(jié)果的調(diào)試和實際應(yīng)用。
      事實上,復(fù)雜的植物結(jié)構(gòu)中通常會包含大量相似分枝,在成熟的樹中更為常見。根 據(jù)對植物的觀察,可以將整株地植物分枝劃分為有限的幾類。植物植物學(xué)家認為可以將分 枝類型按生理年齡進行劃分。植物分枝的相似特征能用于植物結(jié)構(gòu)的快速構(gòu)建。每類分枝 可稱為一種子結(jié)構(gòu),每個子結(jié)構(gòu)可分解為一個生長軸和下一層的子結(jié)構(gòu),直到不再包含下 一層子結(jié)構(gòu)。對單株植物來說,頂層的子結(jié)構(gòu)是植物本身。子結(jié)構(gòu)構(gòu)建方法是,對每類子結(jié) 構(gòu),定義一個子結(jié)構(gòu)庫;植物結(jié)構(gòu)的構(gòu)建過程從最簡單的子結(jié)構(gòu)起,通過子結(jié)構(gòu)的調(diào)用和幾 何變換,逐層自上而下地進行。此算法中,計算時間與子結(jié)構(gòu)庫的大小成正比,而不是和植 物結(jié)構(gòu)中的器官個數(shù)成正比,這對于復(fù)雜的植物結(jié)構(gòu)具有明顯優(yōu)勢。通過試驗證明,對于復(fù) 雜植物結(jié)構(gòu),該算法的效率高于植物結(jié)構(gòu)的遍歷算法。然而,以往此類方法中子結(jié)構(gòu)庫是按 從簡單到復(fù)雜、自頂向下的順序一次性構(gòu)建,不僅不直觀,而且存在部分子結(jié)構(gòu)未被調(diào)用而 浪費資源的情況,對于簡單的植物結(jié)構(gòu),模擬時間反而高于遍歷算法。
      目前國際上有幾款專門用于構(gòu)建虛擬植物結(jié)構(gòu)的商業(yè)軟件,例如xfrog,Onxy tree, Speed tree,AMAP等,大多提供用于桌面設(shè)計的主流軟件的插件。國內(nèi)尚無此類的專 業(yè)軟件。本發(fā)明可以用于此類軟件的算法設(shè)計。發(fā)明內(nèi)容
      本發(fā)明欲解決的技術(shù)問題是如何高效靈活地利用植物分枝的相似性,同時保留植 物結(jié)構(gòu)遍歷算法的優(yōu)勢,進行虛擬植物的構(gòu)建、保存、調(diào)用、交互式編輯以及壓縮存儲。為 此,提出一種基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法。
      為實現(xiàn)本發(fā)明的目的,本發(fā)明基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法的步驟如下
      步驟Sl 子結(jié)構(gòu)參數(shù)初始化,確定虛擬植物中分枝即子結(jié)構(gòu)的類型及逐層調(diào)用關(guān) 系;給定每層子結(jié)構(gòu)的最大個數(shù),即子結(jié)構(gòu)庫大??;
      步驟S2 根據(jù)動態(tài)子結(jié)構(gòu)方法構(gòu)建植物結(jié)構(gòu),首先構(gòu)建虛擬植物的生長軸,對于 虛擬植物生長軸上的任意子結(jié)構(gòu)位置,如果對應(yīng)的子結(jié)構(gòu)在子結(jié)構(gòu)庫中已經(jīng)存在,則直接 從子結(jié)構(gòu)庫中調(diào)用,進行幾何變換后組合到當前子結(jié)構(gòu);否則,遞歸地逐層構(gòu)建子結(jié)構(gòu),放 入對應(yīng)子結(jié)構(gòu)庫中,直到虛擬植物結(jié)構(gòu)構(gòu)建完畢;
      步驟S3 以子結(jié)構(gòu)方法的植物數(shù)據(jù)保存;對于每一類子結(jié)構(gòu),其中植物數(shù)據(jù)是在 模擬過程中創(chuàng)建的植物生長軸的信息,以及子結(jié)構(gòu)位置上的子結(jié)構(gòu)編號和變換矩陣;
      步驟S4 利用子結(jié)構(gòu)信息對植物結(jié)構(gòu)進行交互式編輯;子結(jié)構(gòu)之間的調(diào)用關(guān)系可 以從步驟S3獲取,也可以從步驟S2獲取。
      其中,對植物結(jié)構(gòu)中相似的子結(jié)構(gòu)定義一個子結(jié)構(gòu)庫,通過對其中的信息重復(fù)調(diào) 用節(jié)省時間和空間。
      其中,所述子結(jié)構(gòu)庫中的樣本根據(jù)需要能動態(tài)產(chǎn)生,能避免產(chǎn)生的子結(jié)構(gòu)未被調(diào)用。
      其中,能通過對重復(fù)調(diào)用的子結(jié)構(gòu)只保存一個備份達到虛擬植物的壓縮存儲,能 根據(jù)子結(jié)構(gòu)的調(diào)用信息對構(gòu)建后的植物和植物子結(jié)構(gòu)進行交互式的編輯。
      本發(fā)明的有益效果對于植物結(jié)構(gòu)中重復(fù)出現(xiàn)的子結(jié)構(gòu),只需模擬有限的子結(jié)構(gòu) 樣本,通過重用子結(jié)構(gòu)樣本的信息而提高模擬效率。注意子結(jié)構(gòu)是個遞歸的概念。虛擬植 物可以分解為主軸和直接長在主軸上的子結(jié)構(gòu),主軸上的子結(jié)構(gòu)又可劃分為生長軸和下一 層的子結(jié)構(gòu)。虛擬植物本身是森林場景中的子結(jié)構(gòu)。由于本方法中子結(jié)構(gòu)是在植物結(jié)構(gòu)構(gòu) 建過程中根據(jù)需要動態(tài)創(chuàng)建,因此不存在子結(jié)構(gòu)未被調(diào)用而產(chǎn)生的時間和空間的浪費,對 不同復(fù)雜度的植物結(jié)構(gòu)都能保證模擬效率高于對植物結(jié)構(gòu)進行完全遍歷的算法。用戶可以 改變子結(jié)構(gòu)大小獲得期望的效率和子結(jié)構(gòu)多樣性。植物的構(gòu)建過程是從下而上進行,對動 態(tài)創(chuàng)建的子結(jié)構(gòu)進行遍歷,比較直觀。通常保存虛擬植物幾何結(jié)構(gòu)的文件所占用的空間隨 其中器官個數(shù)線性增加;對于應(yīng)用動態(tài)子結(jié)構(gòu)算法構(gòu)建的植物結(jié)構(gòu),由于子結(jié)構(gòu)的信息被 重用,因此僅需要保存子結(jié)構(gòu)的變換和調(diào)用信息,從而達到節(jié)省空間的目的。在讀取這樣的 文件時,由于需要進行子結(jié)構(gòu)的逐層解開和變化,需要花費一定時間,因此這是一種以時間 換空間的方法。由于子結(jié)構(gòu)的調(diào)用信息被保存,可以對植物進行交互式操作。


      圖Ia是基于動態(tài)子結(jié)構(gòu)方法的框架圖。
      圖Ib是圖Ia中步驟S2的子流程圖。
      圖2是基于隨機子結(jié)構(gòu)的模擬和調(diào)用示意圖。
      圖3是植物結(jié)構(gòu)中包含的不同類別的子結(jié)構(gòu)示例。
      圖如和圖4b是森林場景的子結(jié)構(gòu)方法構(gòu)建示意圖。
      圖5是青園軟件中對復(fù)雜植物結(jié)構(gòu)的模擬結(jié)果。
      圖6是青園軟件中對隨機植物結(jié)構(gòu)的模擬結(jié)果。
      具體實施方式
      為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例子,并參 照附圖,對本發(fā)明進一步詳細說明。這里假定讀者熟悉植物結(jié)構(gòu)模擬算法,例如自動機、字 符串替換系統(tǒng)等,集中介紹如何在這類算法中應(yīng)用動態(tài)子結(jié)構(gòu)算法。
      圖Ia所示為實現(xiàn)動態(tài)子結(jié)構(gòu)方法的各個部分的關(guān)系。
      步驟Sl對植物結(jié)構(gòu)進行參數(shù)的初始化,確定虛擬植物中分枝即子結(jié)構(gòu)的類型及 逐層調(diào)用關(guān)系;給定每層子結(jié)構(gòu)的最大個數(shù),即子結(jié)構(gòu)庫大?。灰獙崿F(xiàn)預(yù)期的虛擬植物結(jié) 構(gòu),首先對植物結(jié)構(gòu)進行分解,確定其中包含的子結(jié)構(gòu)類型以及逐層組合關(guān)系;子結(jié)構(gòu)類型 的劃分可參考植物學(xué)家提出的生理年齡。每類子結(jié)構(gòu)采用相同的植物結(jié)構(gòu)模擬參數(shù)。
      步驟S2根據(jù)動態(tài)子結(jié)構(gòu)方法進行植物結(jié)構(gòu)的構(gòu)建,具體流程如圖Ib所示。由于 子結(jié)構(gòu)為遞歸的概念,為描述方便,當前正在構(gòu)建的子結(jié)構(gòu)稱為當前子結(jié)構(gòu),當前子結(jié)構(gòu)的 生長軸上著生的子結(jié)構(gòu)稱為下一層子結(jié)構(gòu)。當前子結(jié)構(gòu)相對于下一層的子結(jié)構(gòu)稱為上一層 子結(jié)構(gòu)。當前子結(jié)構(gòu)的類別用整數(shù)P表示,P = O時表示虛擬植物本身。當前子結(jié)構(gòu)中包 含的下一層子結(jié)構(gòu)的類別用整數(shù)q表示,一般q大于P。子結(jié)構(gòu)P所對應(yīng)的子結(jié)構(gòu)庫的大小 為Tp,子結(jié)構(gòu)q所對應(yīng)的子結(jié)構(gòu)庫的大小為Τ,,都在步驟Sl中定義。模擬過程從植物的主 軸開始(P = 0)。
      步驟21 根據(jù)植物結(jié)構(gòu)模擬算法構(gòu)建編號ηρ的當前子結(jié)構(gòu)的生長軸,存入子結(jié)構(gòu) P所對應(yīng)的子結(jié)構(gòu)庫中,np e [1,Tp];
      步驟22 以一定次序遍歷編號np的當前子結(jié)構(gòu)的生長軸上的所有產(chǎn)生下一層子 結(jié)構(gòu)的位置。根據(jù)植物結(jié)構(gòu)模擬算法獲得編號np的當前子結(jié)構(gòu)的生長軸上的下一層子結(jié) 構(gòu)的類別q、位置和方向。
      步驟23 判斷遍歷是否已經(jīng)結(jié)束,下一層的子結(jié)構(gòu)的信息是否已包含到當前子結(jié) 構(gòu);如果遍歷沒有結(jié)束,還存在空缺的下一層子結(jié)構(gòu)位置,則轉(zhuǎn)步驟24,如果遍歷已經(jīng)結(jié) 束,則轉(zhuǎn)步驟27。
      步驟M 根據(jù)編號 的當前子結(jié)構(gòu)的生長軸上的下一層子結(jié)構(gòu)類別q產(chǎn)生一個1 到Ttl之間的整數(shù)子結(jié)構(gòu)編號HV HltlG [I7TJ0
      步驟25 判斷該編號的子結(jié)構(gòu)m,是否已經(jīng)在之前進行構(gòu)建,已經(jīng)存在于對應(yīng)于類 別q的子結(jié)構(gòu)庫中。如果存在,則轉(zhuǎn)入步驟21,對編號為m,的下一層子結(jié)構(gòu),以構(gòu)建當前子 結(jié)構(gòu)np同樣的過程進行遞歸構(gòu)建;這時編號為m,的子結(jié)構(gòu)成為當前子結(jié)構(gòu)。如果下一層子 結(jié)構(gòu)m,已經(jīng)存在于子結(jié)構(gòu)q所對應(yīng)的子結(jié)構(gòu)庫中,則轉(zhuǎn)步驟沈。
      步驟沈根據(jù)下一層子結(jié)構(gòu)m,的其位置和方向,進行幾何變換后組合到當前生長 軸,不再重復(fù)構(gòu)建,結(jié)束后轉(zhuǎn)步驟22。
      步驟27 如果當前生長軸上的子結(jié)構(gòu)都已經(jīng)構(gòu)建完畢,則當前子結(jié)構(gòu)的構(gòu)建結(jié) 束,轉(zhuǎn)上一層子結(jié)構(gòu),直至頂層結(jié)構(gòu)。
      圖2是基于隨機子結(jié)構(gòu)的模擬和調(diào)用示意圖,表示動態(tài)子結(jié)構(gòu)方法進行植物結(jié)構(gòu) 的構(gòu)建的過程。其中,黑色的虛線箭頭為子結(jié)構(gòu)的模擬順序,而綠色的彎箭頭的子結(jié)構(gòu)的返 回順序。S1表示要構(gòu)建的虛擬植物,藍色軸為其生長軸。各級子結(jié)構(gòu)庫的大小均為5。當 對其中的橢圓形內(nèi)的子結(jié)構(gòu)進行構(gòu)建時,首先判斷該子結(jié)構(gòu)在對應(yīng)于&的子結(jié)構(gòu)庫中是否 存在,如果不存在則進入到&這一層的子結(jié)構(gòu)樣本構(gòu)建模擬&子結(jié)構(gòu)庫中的子結(jié)構(gòu)樣本的生長軸,遍歷所有子結(jié)構(gòu)位置,判斷某編號的子結(jié)構(gòu)是否存在。如果不存在則進入下一層 進行構(gòu)建。這樣一直進行直到最簡單的一層子結(jié)構(gòu)、。之后逐層調(diào)用返回。
      步驟S3表示以子結(jié)構(gòu)方法的植物數(shù)據(jù)保存;對于每一類子結(jié)構(gòu),其中植物數(shù)據(jù)是 在模擬過程中創(chuàng)建的植物生長軸的信息,以及子結(jié)構(gòu)位置上的子結(jié)構(gòu)編號和變換矩陣。當 存在子結(jié)構(gòu)大量重復(fù)調(diào)用時,對重復(fù)的子結(jié)構(gòu)數(shù)據(jù)僅保存一個備份。數(shù)據(jù)保存可以與步驟 S2的植物結(jié)構(gòu)構(gòu)建過程同步進行,也可以在步驟S2完成之后實現(xiàn)。植物器官可以看作子結(jié) 構(gòu)的一個特例,其幾何結(jié)構(gòu)單獨定義。每種器官對應(yīng)于一個器官描述文件,器官描述文件包 含器官的幾何模型、紋理坐標等信息,可由專業(yè)軟件手工創(chuàng)建。以子結(jié)構(gòu)方式保存的植物數(shù) 據(jù)中僅保存該器官的一個標識,從而節(jié)省空間。描述一個子結(jié)構(gòu)的基本數(shù)據(jù)結(jié)構(gòu)如下
      SUBSTRUCTURE
      {
      int ID;//子結(jié)構(gòu)的標識;
      int length ;//所包含器官個數(shù);
      ORGAN 0(length) ;//所包含的器官列表
      }
      其中,ID為子結(jié)構(gòu)的特征,說明該子結(jié)構(gòu)的類別。length為其生長軸中包含的器 官個數(shù),包括普通的器官,例如節(jié)間、葉子、果實等,也包括其中的下一級子結(jié)構(gòu)。O(Iength) 為對每個器官的具體描述。其數(shù)據(jù)結(jié)構(gòu)ORGAN的描述如下
      ORGAN
      {
      int
      int
      float
      float
      int
      int
      int
      }
      其中,symbol用于標識數(shù)據(jù)結(jié)構(gòu)ORGAN保存的是器官或子結(jié)構(gòu),不同的器官有不 同的類別,與器官描述文件相對應(yīng)。ID為器官的特征。Mo包含器官或子結(jié)構(gòu)的旋轉(zhuǎn)和平移 變換矩陣。如果symbol表示當前的子結(jié)構(gòu)是器官,則So為器官的大小,否則無意義。num_ sons表示當前器官的子器官個數(shù)。對于節(jié)間,其上著生的器官和子結(jié)構(gòu)及其頂端的節(jié)間均 視為其子器官。id_s0ns(num_s0ns)即存放了所有子器官的標識。類似地,icLparent存放 了當前器官的父器官的標識。所有的器官或子結(jié)構(gòu)數(shù)據(jù)以標準的方向和大小存放,在調(diào)用 時給出其在生長軸上的大小、方向和位置。
      對于以子結(jié)構(gòu)方式保存的數(shù)據(jù),可以遞歸地解析出完整的植物幾何信息,進行后 續(xù)的處理。以偽代碼方式描述的解析過程如下
      Read_Substructure(SUBSTRUCTURE s)
      {symbol ; Il器官類別; ID ;//器官標識;Mo (3,4) ; //幾何變換矩陣;So (2) ; //對于器官為器官大小,對于子結(jié)構(gòu)則無意義。 num_sons ;//所指向的器官個數(shù)id_sons (num_sons) ; //所指向的子器官標識 id_parent ;//父器官標i只
      for i = 1 to s. length
      if 0(i). symbolO'子結(jié)構(gòu),
      Output_Substructure (0 (i)) ;//輸出器官的信息
      else
      Read_Substructure(0(i));
      end
      end
      }
      其中,函數(shù)ReacLsubstructure逐個讀取當前子結(jié)構(gòu)中包含的器官信息,如 果該器官是子結(jié)構(gòu),則進一步對其中的子結(jié)構(gòu)進行解析。如果該器官為普通器官(即 s. symbol ’子結(jié)構(gòu)’),則直接讀取器官描述文件的信息,根據(jù)變換矩陣Mo進行變換并返 回。由于每個子結(jié)構(gòu)的ID是唯一的,因此通過ID對子結(jié)構(gòu)進行直接訪問,從而可以得到任 意位置的子結(jié)構(gòu)信息。例如圖3是植物結(jié)構(gòu)中包含的不同類別的子結(jié)構(gòu)示例,從左到右分 別是具有包含關(guān)系的不同類別的子結(jié)構(gòu)。
      步驟S4利用子結(jié)構(gòu)信息對植物結(jié)構(gòu)進行交互式編輯。例如用戶進行枝條修剪、拖 動等操作。在進行交互過程中需要子結(jié)構(gòu)之間的調(diào)用關(guān)系,使得用戶在屏幕上選取一個子 結(jié)構(gòu)的生長軸的某位置后,該位置上方的所有的植物組成部分都能被選取。子結(jié)構(gòu)之間的 調(diào)用關(guān)系可以從步驟S3獲取,也可以從步驟S2獲取,后者意味著在模擬過程中進行交互式 編輯。選取以后可以進行例如剪枝、疏葉、拖動等動作等。上述操作相當于創(chuàng)建了一個新的 子結(jié)構(gòu)。這時需要修改子結(jié)構(gòu)之間的連接關(guān)系,將新的子結(jié)構(gòu)的編號保存在上一級子結(jié)構(gòu) 中,而舊子結(jié)構(gòu)被調(diào)用的次數(shù)減少。修改后的信息傳回步驟S2或步驟S3.
      上述基于動態(tài)子結(jié)構(gòu)的植物結(jié)構(gòu)構(gòu)建的思想可推廣到植物群落的構(gòu)建,即如圖如 和圖4b示出森林場景的子結(jié)構(gòu)方法構(gòu)建示意圖,當構(gòu)建包含大量植物個體的場景時,僅模 擬有限的幾個植物樣本,然后通過重用這些信息來構(gòu)建群落。如圖如表示虛擬植物樣本, 圖4b表示重復(fù)應(yīng)用這幾個樣本而構(gòu)建的植物場景。
      這里我們給出了在“青園”軟件中的實施結(jié)果。“青園”是本課題組自行開發(fā)的一 個基于GreenLab功能結(jié)構(gòu)模型的植物生長和結(jié)構(gòu)模擬軟件,可以用于構(gòu)建各種作物和植 物。GreenLab模型是一個通用的數(shù)學(xué)模型,基于植物學(xué)的基本假設(shè)而建立。青園軟件用c++ 語言實現(xiàn)了本發(fā)明所描述的方法,并且進行了測試。PC機的配置為htel Core (TM) 21. 86G 的CPU,2G的內(nèi)存,操作系統(tǒng)為Windows XP Professional。圖5為青園軟件中對復(fù)雜植物 結(jié)構(gòu)的模擬結(jié)果,一棵基于確定性子結(jié)構(gòu)的復(fù)雜的楊樹的模擬,其中包含了 1210. 6萬個器 官,模型計算時間為10. 2秒。圖6為青園軟件中對隨機植物結(jié)構(gòu)的模擬結(jié)果為基于隨機子 結(jié)構(gòu)的松樹的模擬,其中子結(jié)構(gòu)庫的大小為5。表明在這樣較小的子結(jié)構(gòu)大小下,可以得到 很好的視覺效果。
      以上所述,僅為本發(fā)明中的具體實施方式
      ,但本發(fā)明的保護范圍并不局限于此,任 何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可理解想到的變換或替換,都應(yīng)涵蓋在 本發(fā)明的權(quán)利要求書的保護范圍之內(nèi)。
      權(quán)利要求
      1.一種基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法,其特征在于,所述方法包括 步驟如下步驟Sl 子結(jié)構(gòu)參數(shù)初始化,確定虛擬植物中分枝即子結(jié)構(gòu)的類型及逐層調(diào)用關(guān)系; 給定每層子結(jié)構(gòu)的最大個數(shù),即子結(jié)構(gòu)庫大?。徊襟ES2 根據(jù)動態(tài)子結(jié)構(gòu)方法構(gòu)建植物結(jié)構(gòu),首先構(gòu)建虛擬植物的生長軸,對于虛擬 植物生長軸上的任意子結(jié)構(gòu)位置,如果對應(yīng)的子結(jié)構(gòu)在子結(jié)構(gòu)庫中已經(jīng)存在,則直接從子 結(jié)構(gòu)庫中調(diào)用,進行幾何變換后組合到當前子結(jié)構(gòu);否則,遞歸地逐層構(gòu)建子結(jié)構(gòu),放入對 應(yīng)子結(jié)構(gòu)庫中,直到虛擬植物結(jié)構(gòu)構(gòu)建完畢;步驟S3 以子結(jié)構(gòu)方法的植物數(shù)據(jù)保存;對于每一類子結(jié)構(gòu),其中植物數(shù)據(jù)是在模擬 過程中創(chuàng)建的植物生長軸的信息,以及子結(jié)構(gòu)位置上的子結(jié)構(gòu)編號和變換矩陣;步驟S4 利用子結(jié)構(gòu)信息對植物結(jié)構(gòu)進行交互式編輯;子結(jié)構(gòu)之間的調(diào)用關(guān)系可以從 步驟S3獲取,也可以從步驟S2獲取。
      2.根據(jù)權(quán)利要求1所述的基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法,其特征在 于,對植物結(jié)構(gòu)中相似的子結(jié)構(gòu)定義一個子結(jié)構(gòu)庫,通過對其中的信息重復(fù)調(diào)用節(jié)省時間 和空間。
      3.根據(jù)權(quán)利要求1所述的基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法,其特征在 于,所述子結(jié)構(gòu)庫中的樣本根據(jù)需要能動態(tài)產(chǎn)生,能避免產(chǎn)生的子結(jié)構(gòu)未被調(diào)用。
      4.根據(jù)權(quán)利要求1所述的基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法,其特征在 于,能通過對重復(fù)調(diào)用的子結(jié)構(gòu)只保存一個備份達到虛擬植物的壓縮存儲,能根據(jù)子結(jié)構(gòu) 的調(diào)用信息對構(gòu)建后的植物和植物子結(jié)構(gòu)進行交互式的編輯。
      全文摘要
      本發(fā)明提出一種基于動態(tài)子結(jié)構(gòu)的三維虛擬植物構(gòu)建和存儲方法,包括子結(jié)構(gòu)參數(shù)初始化,根據(jù)動態(tài)子結(jié)構(gòu)方法進行植物結(jié)構(gòu)的構(gòu)建,以子結(jié)構(gòu)方法的數(shù)據(jù)保存,利用子結(jié)構(gòu)信息進行對植物結(jié)構(gòu)的交互式編輯。本發(fā)明的特征在于,對植物結(jié)構(gòu)中相似的子結(jié)構(gòu)定義一個子結(jié)構(gòu)庫,通過對其中的信息重復(fù)調(diào)用節(jié)省時間和空間。子結(jié)構(gòu)庫中的樣本能根據(jù)需要動態(tài)產(chǎn)生,避免產(chǎn)生的子結(jié)構(gòu)未被調(diào)用。能通過對重復(fù)調(diào)用的子結(jié)構(gòu)只保存一個備份達到虛擬植物數(shù)據(jù)的壓縮存儲。能根據(jù)子結(jié)構(gòu)的調(diào)用信息對構(gòu)建后的植物和植物子結(jié)構(gòu)進行交互式的編輯。
      文檔編號G06T17/00GK102034268SQ201010603180
      公開日2011年4月27日 申請日期2010年12月23日 優(yōu)先權(quán)日2010年12月23日
      發(fā)明者華凈, 康孟珍, 胡包鋼 申請人:中國科學(xué)院自動化研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1