CN101577012A - 基于Web的虚拟植物可视化系统及虚拟植物构建方法 - Google Patents
基于Web的虚拟植物可视化系统及虚拟植物构建方法 Download PDFInfo
- Publication number
- CN101577012A CN101577012A CNA2009101041084A CN200910104108A CN101577012A CN 101577012 A CN101577012 A CN 101577012A CN A2009101041084 A CNA2009101041084 A CN A2009101041084A CN 200910104108 A CN200910104108 A CN 200910104108A CN 101577012 A CN101577012 A CN 101577012A
- Authority
- CN
- China
- Prior art keywords
- plant
- organ
- virtual
- virtual plant
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明请求保护虚拟植物可视化系统及方法,涉及计算机网络和数据分布式存储技术,本发明针对现有虚拟植物可视化系统不支持分布式和共享等缺陷,提出了一种基于Web的虚拟植物可视化系统。生理数据通过网页远程获取并存入网络服务器的数据库中;进行三维模型建模,通过web应用程序将器官3D模型提交给网络服务器并保存到器官库中;用户依据数据库中的生理数据、器官模型和L-系统所需的文法信息,通过Web应用程序创建虚拟植物不同生命周期的数据并保存在虚拟植物库中;浏览器插件通过访问远程服务器上的虚拟植物库实现生长过程的3D演示。实现了虚拟植物库和器官库在网络上的共享,完成了植物专家和计算机专家的知识共享和相互协作。
Description
技术领域
本发明涉及计算机技术,植物仿真技术,尤其涉及计算机网络和数据分布式存储技术。
背景技术
虚拟植物生长是指在计算机上形象直观地再现植物的生长过程。利用虚拟植物技术,可以在电脑屏幕上设计农作物,然后再进行实际培育或用基因工程技术繁殖出真实的农作物,使其新品种具有模拟植物的理想性状。虚拟植物的研究起源于1968年美国生物学家Lindenmayer(1925-1989)在生物杂志发表了“Mathematical Models for Cell Interactions inDevelopment”的论文,首次提出了“字符重写系统(String rewrittingsystem)”的概念,为了纪念这位生物学家,称为L系统,主要研究植物的器官(主干,枝条,叶,花)等之间的相互关系。
带参数的L系统定义为一个有序四元组G=(V,∑,ω,P),其中,V表示系统中的字母集;∑表示形式参数集,C(∑)表示一个带参数的逻辑表达式,E(∑)表示一个带参数的算术表达式。在这些表达式中可以使用算术运算符如:+、-、*、/、^,关系运算符,如:>、>=、<、<=、==,和逻辑运算符,如:!、&&、||和括号(),表达式中还可以包含函数调用;ω∈(V×R*)+表示非空参数单词,称为公理,其中R是实数集合; 表示规则集合。改写规则的格式如下:pred:cond→succ其中pred表示前趋,cond表示条件,succ表示后继,例如:A(t):t>5→B(t+1)C(t^0.5,t-2)。
对于L系统本身来说,如上所示只是一种形式化语言。经过产生式迭代产生的结果也只是一系列的字符串,其本身并不具备任何几何意义。为此,科学家引入一种称为“龟形几何”(Turtle Geometry)的数学知识概念,通过对字符串进行龟形解释即可生成一系列复杂的图形。二维情况下,乌龟的当前状态可用一个三元组<x,y,α>表示,其中(x,y)表示乌龟的当前位置,α表示乌龟的朝向(Heading)即乌龟的爬行方向,每次响应动作后该状态都会改变。本系统采用的龟图命令如下:RU,RR,RH为方向符号(RH为生长方向,即龟的朝向),分别表示绕旋转(如图1),带一个参数,表旋转的角度,顺时针为正,逆时针为负;‘[’、‘]’为分枝符号,即遇到‘[’时龟图将压栈保存当前的状态,遇到‘]’时将弹栈恢复上次压栈信息,以实现植物的分枝;其它字符可分为两类:临时变量和器官变量,其中临时变量为产生式的中间迭代信号量,未绑定任何器官信息,没有几何意义,而器官变量则有器官绑定信息,表示特定器官,有几何意义。
如虚拟植物所得字符串为:A[RU(45)B]C[RU(-45)D]E,其中A,B,C,D,E均绑定为线器官,则经过龟形几何解释后其三维渲染结果如图2。从A出发,遇到‘[’,将龟当前信息压栈(即分枝);遇到‘RU(45)’,将龟绕轴旋转45度,遇到B,按旋转后的龟方向画一直线;遇到‘]’,弹出栈信息(即分枝完毕),回到画A后的龟状态;遇到C,在A后画一直线;遇到‘[’,将画C后的龟信息压栈;遇到‘RU(-45)’,将龟绕轴旋转-45度,遇到D,按旋转后的龟方向画一直线;遇到‘]’,弹出栈信息(即分枝完毕),回到画C后的龟状态;最后遇到‘E’,在当前龟状态后往方向画一直线。
在获得植物生长过程中发生的形态结构以及生态生理变化等特性后,应用L系统建模方法对植物建立相应数学模型,通过编程平台综合运用各算法将植物生长几何信息转化为直观的图形信息,在构建植物生长模型时考虑其形态结构与生理功能交互关系,建立了虚拟植物模拟模型,并基于图形技术建立了植物形态的可视化模型,通过模型耦合构建出虚拟植物系统。该系统能够较好地模拟植物的生长过程。例如唐卫东等【基于Open-L系统的植物结构功能模型研究2007】引入了Open-L系统建模理论,在植物形态发生模型的基础上,根据植物生长时其形态与生理特性及环境之间的相互作用,构建了综合考虑植物结构与功能的虚拟植物模型,再根据该模型有效组织了植物生长过程中的数据信息,并建立植物生长的可视化流程。例如L-studio【加拿大Calgary大学】,AMAP【法国的系列软件】,以及GreenLab【中科院自动化所】等。现有系统没有引入数据库功能对数据进行分门别类的存储管理,创建的植物器官三维模型也只能够用于一个虚拟植物,无法重复使用创建的器官模型,也无法向其他用户提供共享;所创建的虚拟植物只能以文件的方式共享给其他用户,当前系统的使用者需要将保存了虚拟植物的文件传递给其他用户,如果大量异地用户对该文件都有访问需求,这种方式显然无法胜任;其次现有系统在利用L系统展示植物生长过程时没有保存不同生命周期的数据,如果需要重复展示必需重新编译文法;最后采用现有技术构建的系统不能跨平台运行。
发明内容
本发明针对现有虚拟植物可视化系统的上述缺陷,提出了一种基于Web的虚拟植物可视化系统。本发明解决上述技术问题的技术方案是,建立基于Web的虚拟植物可视化系统,包括,植物生理数据和生长规则库、虚拟植物器官数据库、虚拟植物数据库、提交植物生理数据web应用模块、提交植物器官模型web应用模块、构造虚拟植物的web应用模块和虚拟植物3D展示浏览器插件。
客户端通过web浏览器的提交植物生理数据web应用模块以文字形式提交植物生理数据,将上述文字形式的植物生理数据翻译成可编译的L文法,保存在植物生理数据和生长规则库,客户端通过提交植物器官模型web应用模块将器官3D模型保存到虚拟植物器官库中;根据生长规则和生理环境数据库中的数据生成虚拟植物库所需的L系统产生式集合,采用L文法字符串形式描述植物的属性构建虚拟植物库;根据虚拟植物库中植物模型中L文法字符串、器官绑定信息CurBindInfo及所需器官模型CurOrgModel以龟图形式对其进行几何图形描述,实现植物从字符串到几何图形的三维渲染展示,通过浏览器插件远程查看虚拟植物的生长过程。且可以单步或动画反复查看植物的不同周期的状态。各个web应用模块和浏览器插件通过网络和标准接口访问网络服务器上的各类数据库,实现了数据的分布式共享。
本发明还提出了一种基于Web的虚拟植物构建方法,具体包括步骤,客户端通过提交植物生理数据web应用模块以文字形式提交植物生理数据,将上述文字形式的植物生理数据翻译成可编译的L文法,保存在植物生理数据和生长规则库中;提交植物器官模型web应用模块将器官3D模型保存到虚拟植物器官库中;构造虚拟植物的web应用模块根据生长规则和生理环境数据库中的数据生成虚拟植物库所需的L系统产生式集合,采用字符形式描述植物的属性构建虚拟植物库;根据虚拟植物库中植物模型中当前L文法字符串CurLStr、当前器官绑定信息CurBindInfo及当前所需器官模型CurOrgModel以龟图原理对其进行几何图形解释,实现植物从字符串到几何图形的三维渲染展示,查看虚拟植物的生长过程。
生成L系统产生式集合的步骤为:根据生长规则和生理环境数据库的OrganDesp字段依次把植物器官用字符串String类型的标识符代替,并保存在String对象数组中;根据PlantAge字段定义植物寿命;AxiomDesp字段定义公理,根据ReguDesp字段定义产生式集合,对L系统进行验证并生成对象,建立字符集与虚拟植物器官库中三维模型一一映射关系,并保存在散列对象Map中。在对L系统进行验证并生成对象过程中,如果环境描述字段EnviDesp或生理参数描述字段PhysiologyDesp为离散数据,归一化并进行拟合,保存在生理环境散列对象EnvMap或生理数据散列对象PhysiologyMap中,否则保存在器官散列对象中。
本发明能够通过构建植物生理数据和生长规则库、虚拟植物库和虚拟植物器官库,对其共享实现对虚拟植物的远程访问和创建。并通过web应用程序对各类数据进行远程修改和访问,使得植物专家和计算机专家可以通过网络进行远程的知识共享,实现相互的协作。虚拟植物器官库中的三维模型能够在网络上进行共享并多次使用,提高了构建和演示虚拟植物的效率。虚拟植物数据库保存了保存不同生命周期的数据提高了展示效率。
附图说明
图1龟形原理图
图2A[RU(45)B]C[RU(-45)D]E的几何解释
图3整体结构图
图4生理数据处理流程图
图5数据维护流程图
图6器官库的维护流程图
图7虚拟植物库构建的结构图
图8交互式生长过程展示流程
具体实施方式
本发明在Web上构架虚拟植物可视化系统,如图3所示为该植物可视化系统结构示意图。包括,植物生理数据和生长规则库、虚拟植物器官数据库、虚拟植物数据库、提交植物生理数据web应用模块、提交植物器官模型web应用模块、构造虚拟植物的web应用模块,其中各类数据库和web应用模块都部署于网络应用服务器上。浏览器插件运行于不同用户端的浏览器中,并通过网络与网络应用服务器连接。客户端通过web浏览器插件通过网路实现的上述各数据库的分布式共享。具体流程如下所述,
(1)植物专家通过客户端向网络提交生长规则和生理数据,计算机专家通过网络获取植物方面的专业数据,并据此形成带生理参数的L-文法。
(2)客户端计算机专家根据植物生长规则和生理数据生成植物器官的3D模型,通过web应用程序提交到虚拟植物器官库中。其中虚拟植物器官库从生理角度对器官进行描述,可对器官模型进行添加、删除、修改和检索。
(3)构造虚拟植物的web应用模块根据植物生长规则、生理数据、植物器官的3D模型应用参数的L文法与虚拟植物器官库中的器官构建虚拟植物,将其保存到虚拟植物库。
(4)在客户端通过虚拟植物3D展示浏览器插件查看虚拟植物库中虚拟植物的生长过程。
(5)交互式生长过程展示植物专家或者其他用户可以通过虚拟植物3D展示浏览器插件交互式查看虚拟植物库中虚拟植物的生长过程。用户可以通过网页自由设置生理参数/生长函数并观看到相应的生长过程。
以下针对附图和具体实例对实现上述功能的流程进行具体描述。
如图4所示为生理数据的结构示意图。包括,植物专家客户端,植物生理数据和生长规则库,计算机专家客户端。
(一)生理数据的结构与实现方法
植物专家客户端通过数据提交页面的web应用模块提交植物生理数据,将对某种植物的描述包括植物构成器官、植物的初始状态、植物的生长规则以及植物生理环境数据以文字形式进行提交,将其保存在植物生理数据和生长规则库中。植物生理数据和生长规则库按照植物的种类和名称对不同植物的数据进行保存。将上述文字形式的植物信息翻译成可编译的L文法,保存在String对象L系统生理规则库中。
其中,数据提交页面、数据维护页面、数据查看页面和生理数据库采用Web网页的形式实现。
①建立植物生理数据和生长规则库ReguAndDataDB。客户端通过提交植物生理数据web应用模块以文字形式提交植物生理数据,建立植物生长规则和生理数据的数据格式列表,按照L系统的形式化定义对植物构成器官、植物的初始状态、植物的生长规则以及植物生理环境数据进行描述,将上述文字形式的植物生理数据翻译成可编译的L文法,保存在数据列表中,形成植物生理数据和生长规则库。如表1所示。
表1植物生理数据和生长规则库表
属性 | ID | PlantUserID | PlantName | AxiomDesp | OrganDesp | ReguDesp | EnviDesp | PlantAge | PhysiologyDesp | LSys |
解释 | 标识符 | 植物专家标识 | 保存植物名称 | 保存初始状态 | 保存器官描述 | 保存规则描述 | 保存环境数据 | 保存植物寿命 | 保存生理数据 | 保存L系统 |
类型 | UINT | UINT | String | String | String | String | String | UINT | String | String |
②建立数据提交页面,以L文法、文字形式描述植物的器官、生长状态、生长规则、生理环境数据等。具体包括:
声明该植物所需的器官,包括器官的生理属性和环境因素,例如:器官(茎)生理属性(大小,长度,中心位置,生长位置,生长方向,几何属性),植物寿命;
描述植物的开始生长状态。采用形式为:A(大小:1,长度:1)[B(大小:1,长度:1)],其中A,B表示声明的器官;()里边的内容为对器官生理属性的设置,分别对器官A的大小和长度进行了初始化;[]表示分枝;
以文字形式描述植物生长规则P,描述器官A:描述生长条件B->描述生长动作C:表示意义为器官A在满足生长条件B的情况下执行生长动作C。例如P:A(大小,长度):A·长度≤5→A(大小:大小+1,长度:长度+1)或者P:A(大小,长度):A·长度≤5→D(大小:1,长度:1),其中A(大小,长度)表示器官A及该器官具有的大小和长度属性;生长条件描述包括器官属性因条件以及个体发育的环境条件,在例子中为A·长度≤5;生长动作描述分为两种:一种为器官本身属性的改变,例如A(大小:大小+1,长度:长度+1),另一种为器官被新器官替代或消失描述,例如D(大小:1,长度:1);
生理环境数据主要说明植物在生长过程中环境的变化以及植物自身变化,例如温度变化以及果实变化等。其中生理环境数据指影响植物个体发育的外部环境因素包括光照时间,光照强度,水分,温度以及其他环境因素,生理环境数据遵循y=f(t)随时间的变化函数,或者如“环境参数时间值”离散的数据。生理数据是指植物个体发育过程中自身属性的变化情况。遵循s=f(t)随时间的变化函数,或者为“器官生理参数时间值”的离散数据。
在数据维护页面,在提交完成之后客户端可以通过数据维护页面查看已经提交的数据并可以进行删除、修改等维护操作,如图5所示为在数据维护页面的操作流程图。客户端通过植物生理数据和生长规则库中植物专家标识PlantUserID、保存植物名称PlantName或标识符ID查找生理数据和生长规则库ReguAndDataDB,如符合要求,可对其进行修改和删除操作。
计算机专家客户端通过数据查看和提交页面,把保存在生长规则和生理环境数据库中的植物信息,翻译成可编译的L文法,保存在String对象L系统到生理规则库中的LSys字段中。并可通过数据提交页面的提交植物生理数据web应用模块、提交植物器官web应用模块将修改的数据提交到生长规则库进行保存。
(二)构建虚拟植物器官库
根据生长规则和生理环境数据库ReguAndDataDB的保存器官描述OrganDesp字段,进行三维模型建模,将构建的器官3D模型保存到虚拟植物器官库VirtualOrganDB中。建立如表2所示结构的虚拟植物器官库VirtualOrganDB表。
表2器官库VirtualOrganDB的表结构
属性 | ID | PlantName | OrganName | OrganType | OrganDesp | Geometry |
解释 | 标识符 | 保存植物名称 | 植物器官名称 | 根、茎、叶、花、果实、种子的索引值 | 保存器官描述 | 保存计算机专家建立的3D模型 |
类型 | UINT | String | String | String | String | Blob |
虚拟植物器官库保存虚拟植物三维可视化过程中所需要的植物器官三维模型,同时客户端通过提交植物器官模型web应用模块读取、保存、修改器官库中各属性的标识符,实现对植物器官三维模型进行读取、保存、修改和删除功能,如图6所示为植物器官维护流程图。在数据维护页面,提交完成之后可以通过客户端数据维护页面查看已经提交的数据并可以进行删除、修改等维护操作,根据植物器官库的属性参数PlantName、OrganName、OrganType或ID,在VirtualOrganDB中查找相应的虚拟植物器官,对其进行修改、删除操作,然后提交到虚拟植物器官库。
(三)构建虚拟植物库
计算机专家客户端通过虚拟植物的web应用模块对已有的生理数据、虚拟植物器官库和L系统进行处理生成虚拟植物库。具体包括,
①预处理
首先根据生长规则和生理环境数据库中的数据生成虚拟植物库所需的L系统产生式集合,其方法和流程如下:
根据生长规则和生理环境数据库的OrganDesp字段依次把植物器官用字符串类型的标识符代替,并保存在字符串对象数组organAlphabets中。
根据生长规则和生理环境数据库的PlantAge字段定义植物寿命。例如形式为PlantAge:10。
根据生长规则和生理环境数据库的AxiomDesp字段定义公理。例如形式为Axiom:A(大小:1,长度:1)[B(大小:1,长度:1)]。
根据生长规则和生理环境数据库的ReguDesp字段定义产生式集合,每条产生式用{}包含。
productions:
{A(t),*,*,[]:<1.0>B(t)}
定义产生式集合形式为:
{B(t),*,*,[]:<1.0>C(t)}
end
其中(t)是参数可反应生理参数、环境参数的变化,生理参数由对象physiologyMap存储,环境参数对象envMap存储。
对上述参数进行编译。主要是对翻译的L文法即L系统进行验证,判断是否符合形如:
PlantAge:
Axiom:
productions:,并生成三个对象。
{A(t),*,*,[]:<>B(t)}
end
第一个为String对象Axiom,保存L系统lsystem中的Axiom;第二个为String对象数组productions,保存lsystem中的productions,第三个为String对象数组有效字符集alphabets,保存lsystem中的有效字符集,
进行器官绑定。 如果a∈organAlphabets(器官字符集),建立有效字符集a与VirtualOrganDB中三维模型一一映射关系,并在器官散列表对象organMap中保存器官绑定信息。
提取生长规则和生理环境数据库中的字段进行判断,如果保存环境数据EnviDesp字段或保存生理数据PhysiologyDesp字段为离散数据,首先把数据归一化到[0,1]区间,然后进行拟合,并在环境散列表对象EnvMap或生理参数散列表对象PhysiologyMap中保存。
在提交完成之后可以通过数据维护页面查看已经提交的模型并可以进行删除、修改等维护操作。
②构建虚拟植物库信息列表
采用字符形式描述植物的名称、寿命、年龄等属性,构建虚拟植物库。虚拟植物库(VirPlantDB)中存储了所有的已经建立的虚拟植物(VirPlant),每棵虚拟植物存储在若干行中,字段VirPlant表示植物的名字。虚拟植物库(VirPlantDB)包括字段:VirPlantDB(ID,VirPlant,PlantAge,CurPeriod,CurLStr,CurBindInfo,CurOrgModel)。其表结构定义如下:
表3虚拟植物库表结构
字段名称 | ID | VirPlant | PlantAge | CurPeriod | CurLStr | CurBindInfo | CurOrgModel |
字段意义 | 标识符 | 植物名称 | 植物寿命 | 当前年龄 | 当前L文法字符串 | 当前器官绑定信息 | 当前所需器官模型 |
数据类型 | int | string | int | int | string | string | Object |
字段ID,标识符,唯一标识了一行数据,该行数据表示了当前生长年龄的虚拟植物生长状态及器官绑定信息,可以供“虚拟植物3D展示浏览器插件”展示。字段VirPlant,是虚拟植物的名称,用于标识一个虚拟植物的名称,当需要查询某个虚拟植物时,必须提交植物名称。字段PlantAge,是虚拟植物的寿命,是虚拟植物的最大生长年龄数,该数值代表了该虚拟植物在数据库表中的存储行数。字段CurPeriod,表示当前生长年龄,一个植物的所有生长数据按生长年龄递增组合起来,可以代表虚拟植物整个生命发育周期的生长状态信息。字段CurLStr,表示当前L文法字符串,该字符串由参数化的L文法字符组成,代表了当前生长年龄的植物生长状态及器官信息,如有L文法字符串的形式定义LStr=A(t1,t2,……ti)LStr1[C(r1,)LStr2]B(s1,s2,……si)LStr3(LStr1,LStr2,LStr3为三个子串,可为空,A,B,C为带参数的L字符)。字段CurBindInfo,表示当前器官绑定信息,是一个字符串,代表了L文法字符与器官模型的映射信息。L文法字符串的字符有些需要绑定到器官模型,有些则只是一个临时变量,不需要绑定到某个器官模型,如有这样的绑定:A(org1)B(org2)C(org3)……,表示L字符A绑定器官模型org1,L字符B绑定器官模型org2,L字符C绑定器官模型org3……(org1,org2,org3为器官名称)。字段CurOrgModel,表示当前所需要的器官模型,属于一个对象,代表了模型的ID、名称、属性和3D信息,用于3D可视化时绘制图形。需要注意,此处只存储了当前新增的器官模型,对于该表中已经存储的器官模型,不需要再重复存储,如有这样的器官模型对象OrgModel(id,org,attributes,3d_array)。
虚拟植物库提供了按照虚拟植物名称进行读取和存储的功能。当提交了需要查询的虚拟植物名称后,虚拟植物库将根据虚拟植物名称查询出虚拟植物寿命,然后虚拟植物库根据虚拟植物名称、植物寿命两个字段查询出该虚拟植物的所有生长年龄的数据。当要存储虚拟植物的数据到虚拟植物库时,必须指定植物的名称和植物寿命。需要注意,虚拟植物库会根据植物寿命,要求存储所有生长年龄的虚拟植物数据,否则要存储的虚拟植物将存储失败。
③生成虚拟植物库
根据前面建立的公理“Axiom”、植物寿命“plantage”、L文法产生式集合“productions”、器官绑定信息“organMap”、生理环境“envMap”、生理数据“physiologyMap”、虚拟植物器官库“VirtualOrganDB”,使用“构造虚拟植物服务程序”构建出虚拟植物。
构建的虚拟植物存储在“虚拟植物库”(VirPlantDB)中。该虚拟植物库的结构如图7所示:
构造虚拟植物服务模块根据虚拟植物器官库的数据构建虚拟植物,并将产生的虚拟植物存储在虚拟植物库中。具体步骤如下,
(1)从Axiom对象中读取构建虚拟植物的初始公理(即植物的初始生长状态),赋给当前L文法字符串CurLStr;将CurPeriod设为1;从organMap中读取器官绑定信息赋给CurBindInfo;并根据器官绑定信息从VirtualOrganDB中读取初始器官模型作为CurOrgModel;从虚拟植物器官库读取植物的生长寿命作为plantage;(2)将控制变量CurPeriod设为1
(3)根据当前植物的名称,检查CurOrgModel在当前虚拟植物的数据行中是否已经存储,如果已经存储则将(id,VirPlant,PlantAge,CurPeriod,nextid,CurLStr,CurBindInfo)存入虚拟植物库;否则将(id,VirPlant,PlantAge,CurPeriod,nextid,CurLStr,CurBindInfo,CurOrgModel)存入虚拟植物库;
(4)从生理环境函数envMap中读取当前植物生长的生理环境env【如设当前环境为温度tem=20】。根据env【tem=20】和CurLStr【如设CurLStr=A(2)B(3,0.5)】中字符匹配L文法产生式集合“productions”中的产生式【设productions为:
{A(t),*,*,[t>1&&?tem>22]:<1.0>C(3)}
{B(t,s),*,*,[t>2&&?tem>18]:<1.0>C(4,size(s))}】;
(5)器官绑定:根据已经全部匹配后得到的CurLStr和productions更新当前CurBindInfo和当前CurOrgModel;
(6)将控制变量CurPeriod加1;
(7)判断CurPeriod是否等于plantage,如果是则转(8),否则转(3);
(8)该虚拟植物构建成功,结束。
对构建的虚拟植物进行匹配,其中匹配过程如下,
查找CurLStr中所有L文法字符l_char(L文法迭代过程中的字符串中的字符),如果l_char等于某产生式的前趋,则检查条件【包括环境env】是否满足当前L文法中产生式的条件cond,如果满足则使用该产生式右边的后继替换CurLStr的当前字符l_char,同时根据当前产生式和physiologyMap修改CurLStr需要修改的参数【对于此处假设的情况,显然字符A的环境条件得不到满足,因为产生式要求温度大于22度,环境温度为20度,不替换,继续检查A后面的字符B,所有条件都满足,则替换,并对可赋值的参数赋值,替换并赋值后CurLStr=A(2)C(4,size(0.5)),此时假设physiologyMap为size(0.5)=0.23,则CurLStr=A(2)C(4,0.23)】;否则不替换,继续查找l_char后面的字符。
(四)虚拟植物3D展示。植物专家通过虚拟植物3D展示浏览器插件查找虚拟植物库,下载特定植物的数据模型到本地,并将其进行三维渲染查看建模结果,从而减少了展示过程中通讯所消耗的时间,提高了系统效率。首先,植物专家通过虚拟植物3D展示浏览器插件的读取功能,根据输入的植物名称从服务器端查找虚拟植物库表VirPlantDB中的VirPlant字段,若存在该植物则将其所有生长年龄阶段的数据下载保存到本地,获取植物模型;然后,虚拟植物3D展示浏览器插件根据获得的植物模型,根据植物模型中得到的当前L文法字符串CurLStr、当前器官绑定信息CurBindInfo及当前所需器官模型CurOrgModel以龟图原理(见图1)对其进行几何图形解释,实现植物从字符串到几何图形的三维渲染展示,查看虚拟植物的生长过程。其中植物的生长过程可以以单步形式(根据得到的虚拟植物的当前年龄CurPeriod,递增往下查找,每增加一步,CurPeriod增加1)观看,亦可以动画形式(将得到的所有生长年龄的植物模型数据按照当前年龄CurPeriod的递增顺序对各个阶段依次进行龟形几何解释)观看。
(五)交互式生长过程展示
植物专家可通过虚拟植物3D展示浏览器插件的生长交互功能在线修改植物的生长函数及环境参数,实现实时修改和观察植物模型的三维渲染结果,其流程如图8所示。
首先,客户端通过虚拟植物3D展示浏览器插件的生长交互功能修改植物生长的生长函数及环境参数,并将其提交到服务器端;然后,通过虚拟植物3D展示浏览器插件的读取接口从服务端读取指定植物的模型,将其下载保存到本地;最后,虚拟植物3D展示浏览器插件将对新下载的植物模型进行再次龟图三维渲染,用户可实时查看因修改相关参数而得到的不同的植物建模结果,实现虚拟植物的在线生长建模。
虚拟植物模型在服务器端已全部建立好,浏览器插件将数据下载到本地,参数修改后的展示均可在本地完成。本发明对虚拟植物共享并实现远程访问和创建,并通过web应用程序对各类数据进行远程修改和访问,使得植物专家和计算机专家可以通过网络进行远程的知识共享,实现相互的协作。以上描述仅针对较佳实施例进行,并不完全限制本发明,本发明的保护以权利要求书为准。
Claims (8)
1.基于Web的虚拟植物可视化系统,包括:虚拟植物器官数据库、虚拟植物数据库、植物生理数据和生长规则库、提交植物生理数据web应用模块、提交植物器官模型web应用模块、构造虚拟植物的web应用模块和虚拟植物3D展示浏览器插件,其特征在于,客户端通过web浏览器的提交植物生理数据web应用模块以文字形式提交植物生理数据,将上述文字形式的植物生理数据翻译成可编译的L文法,保存在植物生理数据和生长规则库,客户端通过提交植物器官模型web应用模块将器官3D模型保存到虚拟植物器官库中;构造虚拟植物的web应用模块根据生长规则和生理环境数据库中的数据生成虚拟植物库所需的L系统产生式集合,采用L文法字符串形式描述植物的属性构建虚拟植物库;根据虚拟植物库中植物模型中L文法字符串、器官绑定信息CurBindInfo及所需器官模型CurOrgModel以龟图形式对其进行几何图形描述,实现植物从字符串到几何图形的三维渲染展示,通过浏览器插件远程查看虚拟植物的生长过程。
2.根据权利要求1所述的虚拟植物可视化系统,其特征在于,所述植物生理数据包括:植物构成器官、植物的初始状态、植物的生长规则以及植物生理环境数据。
3.根据权利要求1所述的虚拟植物可视化系统,其特征在于,生成L系统产生式集合具体包括:根据生长规则和生理环境数据库的保存器官描述字段依次把植物器官用L文法字符串类型的标识符代替,并保存在L文法字符串对象数组中;根据植物寿命PlantAge字段定义植物寿命;保存初始状态字段Axiom定义公理,根据保存规则描述ReguDesp字段定义产生式集合,对L系统进行验证并生成对象,建立字符集与虚拟植物器官库中三维模型一一映射关系,并保存在散列对象中。
4.根据权利要求1所述的虚拟植物可视化系统,其特征在于,浏览器插件通过访问远程服务器上的虚拟植物库实现生长过程的3D演示,单步或动画反复查看植物的不同周期的状态。
5.根据权利要求1所述的虚拟植物可视化系统,其特征在于,根据公理、植物寿命、L文法产生式集合、器官绑定信息、生理环境、生理数据、虚拟植物器官库,构造虚拟植物的web应用模块构建虚拟植物库。
6.基于Web的虚拟植物构建方法,其特征在于,客户端通过提交植物生理数据web应用模块以文字形式提交植物生理数据,将上述文字形式的植物生理数据翻译成可编译的L文法,保存在植物生理数据和生长规则库中,提交植物器官模型web应用模块将器官3D模型保存到虚拟植物器官库中;构造虚拟植物的web应用模块根据生长规则和生理环境数据库中的数据生成虚拟植物库所需的L系统产生式集合,采用字符形式描述植物的属性,创建植物不同生长周期的数据,保存在虚拟植物库中;根据虚拟植物库中植物模型中当前L文法字符串、器官绑定信息CurBindInfo及器官模型CurOrgModel以龟图形式对虚拟植物进行几何图形描述,实现植物从字符串到几何图形的三维渲染展示,并查看虚拟植物的生长过程。
7.根据权利要求6所述虚拟植物构建方法,其特征在于,生成L系统产生式集合的步骤具体包括:根据生长规则和生理环境数据库的OrganDesp字段依次把植物器官用字符串类型的标识符代替,并保存在字符串对象数组中;根据植物寿命字段定义植物寿命;AxiomDesp字段定义公理,根据ReguDesp字段定义产生式集合,对L系统进行验证并生成对象,建立字符集与虚拟植物器官库中三维模型一一映射关系,并保存在散列对象中。
8.根据权利要求7所述虚拟植物构建方法,其特征在于,在对L系统进行验证并生成对象过程中,如果环境描述字段或生理参数描述字段为离散数据,归一化并进行拟合,保存在生理环境散列对象或生理数据散列对象中,否则保存在器官散列对象中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101041084A CN101577012B (zh) | 2009-06-17 | 2009-06-17 | 基于Web的虚拟植物可视化系统及虚拟植物构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101041084A CN101577012B (zh) | 2009-06-17 | 2009-06-17 | 基于Web的虚拟植物可视化系统及虚拟植物构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101577012A true CN101577012A (zh) | 2009-11-11 |
CN101577012B CN101577012B (zh) | 2011-12-28 |
Family
ID=41271946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101041084A Expired - Fee Related CN101577012B (zh) | 2009-06-17 | 2009-06-17 | 基于Web的虚拟植物可视化系统及虚拟植物构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101577012B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129514A (zh) * | 2011-03-08 | 2011-07-20 | 浙江大学 | 一种基于3d技术的中医五行模型在线展示的实现方法 |
CN102254344A (zh) * | 2011-06-29 | 2011-11-23 | 浙江工业大学 | 一种交互式虚拟植物动态可视化方法 |
CN102609507A (zh) * | 2012-02-03 | 2012-07-25 | 浙江工业大学 | 基于Web的数据可视化系统 |
CN102682464A (zh) * | 2012-03-31 | 2012-09-19 | 北京农业信息技术研究中心 | 一种基于生长体空间的植物生长动画合成方法 |
CN102708254A (zh) * | 2012-05-18 | 2012-10-03 | 福州大学 | 基于虚拟植物的冠层对光合有效辐射截获能力分析方法 |
CN106339525A (zh) * | 2015-07-07 | 2017-01-18 | 波音公司 | 产品可视化系统 |
CN106547756A (zh) * | 2015-09-17 | 2017-03-29 | 北京国双科技有限公司 | 数据库的创建方法及装置 |
CN107256454A (zh) * | 2017-05-31 | 2017-10-17 | 安徽农业大学 | 一种受生长要素影响的植物三维形态样本建模方法 |
CN108304669A (zh) * | 2018-02-11 | 2018-07-20 | 江苏省水利勘测设计研究院有限公司 | 一种绿化种植信息化设计方法 |
CN103985153B (zh) * | 2014-04-16 | 2018-10-19 | 北京农业信息技术研究中心 | 模拟植株生长的方法和系统 |
CN109738435A (zh) * | 2018-12-13 | 2019-05-10 | 成都信息工程大学 | 一种荞麦生长监测诊断及产量预测方法 |
CN111508060A (zh) * | 2020-03-24 | 2020-08-07 | 深圳市天天学农网络科技有限公司 | 基于3d模型的农作物施肥施药演示方法、装置及系统 |
CN113450441A (zh) * | 2021-06-23 | 2021-09-28 | 网易(杭州)网络有限公司 | 三维虚拟模型的渲染方法、装置和电子设备 |
-
2009
- 2009-06-17 CN CN2009101041084A patent/CN101577012B/zh not_active Expired - Fee Related
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129514A (zh) * | 2011-03-08 | 2011-07-20 | 浙江大学 | 一种基于3d技术的中医五行模型在线展示的实现方法 |
CN102254344A (zh) * | 2011-06-29 | 2011-11-23 | 浙江工业大学 | 一种交互式虚拟植物动态可视化方法 |
CN102609507A (zh) * | 2012-02-03 | 2012-07-25 | 浙江工业大学 | 基于Web的数据可视化系统 |
CN102682464A (zh) * | 2012-03-31 | 2012-09-19 | 北京农业信息技术研究中心 | 一种基于生长体空间的植物生长动画合成方法 |
CN102682464B (zh) * | 2012-03-31 | 2014-11-19 | 北京农业信息技术研究中心 | 一种基于生长体空间的植物生长动画合成方法 |
CN102708254A (zh) * | 2012-05-18 | 2012-10-03 | 福州大学 | 基于虚拟植物的冠层对光合有效辐射截获能力分析方法 |
CN102708254B (zh) * | 2012-05-18 | 2014-04-09 | 福州大学 | 基于虚拟植物的冠层对光合有效辐射截获能力分析方法 |
CN103985153B (zh) * | 2014-04-16 | 2018-10-19 | 北京农业信息技术研究中心 | 模拟植株生长的方法和系统 |
CN106339525A (zh) * | 2015-07-07 | 2017-01-18 | 波音公司 | 产品可视化系统 |
CN106339525B (zh) * | 2015-07-07 | 2021-12-03 | 波音公司 | 产品可视化系统 |
CN106547756A (zh) * | 2015-09-17 | 2017-03-29 | 北京国双科技有限公司 | 数据库的创建方法及装置 |
CN106547756B (zh) * | 2015-09-17 | 2021-02-12 | 北京国双科技有限公司 | 数据库的创建方法及装置 |
CN107256454A (zh) * | 2017-05-31 | 2017-10-17 | 安徽农业大学 | 一种受生长要素影响的植物三维形态样本建模方法 |
CN108304669A (zh) * | 2018-02-11 | 2018-07-20 | 江苏省水利勘测设计研究院有限公司 | 一种绿化种植信息化设计方法 |
CN109738435A (zh) * | 2018-12-13 | 2019-05-10 | 成都信息工程大学 | 一种荞麦生长监测诊断及产量预测方法 |
CN109738435B (zh) * | 2018-12-13 | 2021-06-08 | 成都信息工程大学 | 一种荞麦生长监测诊断及产量预测方法 |
CN111508060A (zh) * | 2020-03-24 | 2020-08-07 | 深圳市天天学农网络科技有限公司 | 基于3d模型的农作物施肥施药演示方法、装置及系统 |
CN113450441A (zh) * | 2021-06-23 | 2021-09-28 | 网易(杭州)网络有限公司 | 三维虚拟模型的渲染方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101577012B (zh) | 2011-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101577012B (zh) | 基于Web的虚拟植物可视化系统及虚拟植物构建方法 | |
Kniemeyer | Design and implementation of a graph grammar based language for functional-structural plant modelling | |
US6816868B1 (en) | Database system | |
CN101315601B (zh) | 用于管理资源的系统和方法 | |
Van Evert et al. | CropSyst: A collection of object‐oriented simulation models of agricultural systems | |
CN102184569B (zh) | 一种领域本体驱动的单株木建模方法 | |
CN101727322B (zh) | 优化物料清单管理界面的方法及装置 | |
US20140229491A1 (en) | Converting data models into in-database analysis models | |
US9805112B2 (en) | Method and structure for managing multiple electronic forms and their records using a static database | |
CN106843827A (zh) | 一种基于功件树和功件库的目标软件生成方法及装置 | |
CN102053987B (zh) | 用于显示和修改数据数组的统一接口 | |
US11880930B2 (en) | System and method for content creation via interactive layers | |
Liu | Component-driven pocedural modeling for ancient Chinese architecture of the Qing Dynasty | |
Batory | Intelligent components and software generators | |
CN102567590A (zh) | 一种cad服务器装置及方法 | |
Liu et al. | Database schema evolution through the specification and maintenance of changes on entities and relationships | |
Adam et al. | A systematic approach for re-assembly of crop models: An example to simulate pea growth from wheat growth | |
Stock et al. | Linking GIS with real-time visualisation for exploration of landscape changes in rural community workshops | |
CN102880629B (zh) | 概率数据库加速查询方法 | |
McCormack | A developmental model for generative media | |
Buck-Sorlin et al. | A model of poplar (Populus sp.) physiology and morphology based on relational growth grammars | |
Henke et al. | Realization and extension of the xfrog approach for plant modelling in the graph-grammar based language XL | |
Neroda | Data structure designing of the internal component libraries for learning experiment environment | |
Nouri et al. | Development of Algorithmic Applications in Architecture: A Review and Analysis of L-Systems. | |
Caldwell et al. | A generic model of hierarchy for systems analysis and simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111228 Termination date: 20140617 |
|
EXPY | Termination of patent right or utility model |