首页 / 专利库 / 企业组织 / 框图 / 基于物理学的图形程序编辑器

基于物理学的图形程序编辑器

阅读:962发布:2020-06-28

专利汇可以提供基于物理学的图形程序编辑器专利检索,专利查询,专利分析的服务。并且一种编辑符号图的系统和方法。诸如图形程序之类的符号图被显示在显示设备上。可以接收编辑符号图的用户输入,从而产生编辑的符号图。响应所述编辑,根据确定的基于所述编辑向编辑的符号图中的一个或多个元件施加的 力 ,可调整符号图中的所述一个或多个元件的布置,结果形成调整后的编辑的符号图。调整后的编辑的符号图可被显示在显示设备上,这可包括显示动画,所述动画图解各个元件到平衡状态的移动,在平衡状态下,力平衡并且移动停止。可视情况顺序地和/或同时地进行所述编辑、调整和显示。,下面是基于物理学的图形程序编辑器专利的具体信息内容。

1.一种保存程序指令的非临时性计算机可访问存储介质,所述程序指令可由处理器执行,以实现:
在显示设备上显示图形程序,其中所述图形程序包括多个互连节点,所述多个互连节点在视觉上指示所述图形程序的功能;
接收编辑图形程序的用户输入,从而产生编辑的图形程序;
根据所述编辑,调整编辑的图形程序内的多个元件的布置,其中所述调整是根据确定的施加于编辑的图形程序中的所述多个元件的进行的,其中对所述布置的所述调整形成调整后的编辑的图形程序,其中对所述多个元件的布置的所述调整包括:
根据所述多个元件的位置,确定对于所述多个元件中的每个元件的一个或多个力;
相加对于所述多个元件中的每个元件的力,从而确定合力;
根据合力,移动所述多个元件;和
迭代地一次或多次重复所述确定、所述相加和所述移动,直到获得平衡条件为止;和把调整后的编辑的图形程序显示在显示设备上,
其中所述多个元件包括至少一个图形程序节点以及下述各项中的一个或多个:
图形程序中的结构节点的边界,或者
图形程序的边界;以及
连接到图形程序节点的至少一条线,或者
图形程序中的至少一个端点。
2.按照权利要求1所述的非临时性计算机可访问存储介质,其中至少一部分的所述编辑、所述调整和对所述调整后的编辑的图形程序的所述显示是同时进行的。
3.按照权利要求1所述的非临时性计算机可访问存储介质,其中在实现对所述布置的所述调整时,所述程序指令可进一步执行,以实现:
根据编辑操作,确定施加于编辑的图形程序中的所述多个元件的力;
根据确定的力对于所述多个元件的施加,计算编辑的图形程序内的所述多个元件的布置的调整。
4.按照权利要求1所述的非临时性计算机可访问存储介质,其中所述显示包括:
显示图解所述移动的动画。
5.按照权利要求4所述的非临时性计算机可访问存储介质,其中程序指令可进一步执行,以进行:
在对所述用户输入的所述接收之前和在获得平衡条件之后,迭代地重复所述确定、所述相加和所述移动;
其中对所述动画的所述显示还包括:
在对所述用户输入的所述接收之前和在获得平衡条件之后的迭代地重复所述确定、所述相加和所述移动期间,显示图形程序。
6.按照权利要求1所述的非临时性计算机可访问存储介质,其中迭代地一次或多次重复所述确定、所述相加和所述移动包括:
执行图形程序的模型,其中所述模型借助多个基于物理学的参数来指定和实现图形程序或图形程序的元件的基于物理学的属性和行为。
7.按照权利要求6所述的非临时性计算机可访问存储介质,其中对所述模型的所述执行包括:
动态修改图形程序或图形程序的元件的基于物理学的参数中的一个或多个参数。
8.按照权利要求7所述的非临时性计算机可访问存储介质,其中对一个或多个基于物理学的参数的所述动态修改包括:
把相应的分布图应用于图形程序或图形程序的元件的一个或多个基于物理学的参数,其中各个分布图指定相应参数的一系列值。
9.按照权利要求7所述的非临时性计算机可访问存储介质,其中所述程序指令可进一步执行,以进行:
显示包含一个或多个控件或指示器的图形用户界面GUI;和
接收指定或修改下述中的一个或多个的用户输入:
所述一个或多个基于物理学的参数中的至少一个参数;或者
模型或模型行为的至少一个定性方面;
其中对所述模型的所述执行是按照指定或修改的至少一个参数或至少一个定性方面进行的。
10.按照权利要求9所述的非临时性计算机可访问存储介质,其中对GUI的所述显示以及对指定或修改至少一个参数或至少一个定性方面的用户输入的所述接收是在对所述模型的所述执行的期间动态进行的。
11.按照权利要求6所述的非临时性计算机可访问存储介质,其中程序指令可进一步执行,以进行:
在对所述用户输入的所述接收之前和在获得平衡条件之后,迭代地重复所述确定、所述相加和所述移动;和
显示图形程序的动画,包括:
对所述图形程序的所述显示;
图解所述移动;和
对所述调整后的编辑的图形程序的所述显示。
12.按照权利要求11所述的非临时性计算机可访问存储介质,其中比实时快地进行对图形程序的模型的所述执行,其中程序指令可进一步执行,以进行:
在模型的执行期间,保存一系列的模型状态;
其中对图形程序的动画的所述显示包括:
把一系列的模型状态映射到图形程序的一系列图像;和
显示与所述一系列的模型状态对应的图形程序的一系列图像。
13.按照权利要求12所述的非临时性计算机可访问存储介质,其中所述映射包含非线性映射。
14.按照权利要求11所述的非临时性计算机可访问存储介质,其中比实时快地进行所述执行图形程序的模型,其中程序指令可进一步执行,以进行:
在模型的执行期间,保存一系列的模型状态;
其中所述显示图形程序的动画包括:
对一系列的模型状态采样,从而产生一系列的采样状态;和
显示与所述一系列的采样状态对应的图形程序的一系列图像。
15.按照权利要求1所述的非临时性计算机可访问存储介质,其中用户输入指定或操作图形程序中的元件。
16.按照权利要求1所述的非临时性计算机可访问存储介质,其中用户输入调用或指定下述中的一个或多个:
选择图形程序中的元件;
向图形程序中增加元件;
从图形程序中除去元件;
连接图形程序中的两个或者更多的元件;
移动图形程序中的元件;
放大图形程序中的元件;
压缩图形程序中的元件;
展开图形程序中的元件;
折叠图形程序中的元件;
调整图形程序中的元件的大小;
显示图形程序中的元件的可操作暗示;或
显示图形程序中的元件的端点。
17.按照权利要求1所述的非临时性计算机可访问存储介质,其中所述多个元件包含下述中的一个或多个:
至少一个图形程序节点;
连接到图形程序节点的至少一条线;或者
图形程序中的至少一个端点。
18.按照权利要求1所述的非临时性计算机可访问存储介质,其中图形程序包含图形数据流程序。
19.按照权利要求1所述的非临时性计算机可访问存储介质,其中图形程序包括图形控制流程序。
20.一种用于编辑图形程序的方法,包括:
利用计算机进行:
在显示设备上显示图形程序,其中所述图形程序包括多个互连节点,所述多个互连节点在视觉上指示所述图形程序的功能;
接收编辑图形程序的用户输入,从而产生编辑的图形程序;
根据所述编辑,向编辑的图形程序中的多个元件施加力,其中所述施加力操作为调整编辑的图形程序内的所述多个元件的布置,结果形成调整后的编辑的图形程序,其中对所述多个元件的布置的所述调整包括:
根据所述多个元件的位置,确定对于所述多个元件中的每个元件的一个或多个力;
相加对于所述多个元件中的每个元件的力,从而确定合力;
根据合力,移动所述多个元件;和
迭代地一次或多次重复所述确定、所述相加和所述移动,直到获得平衡条件为止;和把调整后的编辑的图形程序显示在显示设备上,
其中所述多个元件包括至少一个图形程序节点以及下述一个或多个:
图形程序中的结构节点的边界,或者
图形程序的边界;以及
连接到图形程序节点的至少一条线,或者
图形程序中的至少一个端点。
21.一种用于编辑图形程序的系统,包括:
处理器;和
耦接到处理器的存储器,其中所述存储器保存程序指令,所述程序可由处理器执行,以便:
在显示设备上显示图形程序,其中所述图形程序包括多个互连节点,所述多个互连节点在视觉上指示所述图形程序的功能;
接收编辑图形程序的用户输入,从而产生编辑的图形程序;
根据基于所述编辑确定的向编辑的图形程序中的多个元件施加的力,调整编辑的图形程序内的所述多个元件的布置,结果形成调整后的编辑的图形程序,其中对所述多个元件的布置的所述调整包括:
根据所述多个元件的位置,确定对于所述多个元件中的每个元件的一个或多个力;
相加对于所述多个元件中的每个元件的力,从而确定合力;
根据合力,移动所述多个元件;和
迭代地一次或多次重复所述确定、所述相加和所述移动,直到获得平衡条件为止;和把调整后的编辑的图形程序显示在显示设备上;
其中所述多个元件包括至少一个图形程序节点以及下述一个或多个:
图形程序中的结构节点的边界,或者
图形程序的边界;以及
连接到图形程序节点的至少一条线,或者
图形程序中的至少一个端点。
22.一种保存程序指令的非临时性计算机可访问存储介质,所述程序指令可由处理器执行,以实现:
在显示设备上显示符号图,其中所述符号图包含多个互连图标;
接收编辑符号图的用户输入,从而产生编辑的符号图;
根据所述编辑,调整编辑的符号图内的多个元件的布置,其中所述调整是根据确定的施加于编辑的符号图内的所述多个元件的力进行的,其中对所述布置的所述调整形成调整后的编辑的符号图,其中对所述多个元件的布置的所述调整包括:
根据所述多个元件的位置,确定对于所述多个元件中的每个元件的一个或多个力;
相加对于所述多个元件中的每个元件的力,从而确定合力;
根据合力,移动所述多个元件;和
迭代地一次或多次重复所述确定、所述相加和所述移动,直到获得平衡条件为止;和把调整后的编辑的符号图显示在显示设备上;
其中所述多个元件包括至少一个符号图图标以及下述一个或多个:
符号图中的结构图标的边界,或者
符号图的边界;以及
连接到符号图图标的至少一条线,或者
符号图中的至少一个端点。
23.按照权利要求22所述的非临时性计算机可访问存储介质,其中至少一部分的所述编辑、所述调整和对所述调整后的编辑的符号图的所述显示是同时进行的。
24.按照权利要求22所述的非临时性计算机可访问存储介质,其中在实现对所述布置的所述调整时,所述程序指令可进一步执行,以实现:
根据编辑操作,确定施加于编辑的符号图中的所述多个元件的力;
根据确定的力对于所述多个元件的施加,计算编辑的符号图内的所述多个元件的布置的调整。
25.按照权利要求22所述的非临时性计算机可访问存储介质,其中所述显示包括:
显示图解所述移动的动画。
26.按照权利要求25所述的非临时性计算机可访问存储介质,其中程序指令可进一步执行,以进行:
在对所述用户输入的所述接收之前和在获得平衡条件之后,迭代地重复所述确定、所述相加和所述移动;
其中对所述动画的所述显示还包括:
在对所述用户输入的所述接收之前和在获得平衡条件之后的迭代地重复所述确定、所述相加和所述移动期间,显示符号图。
27.按照权利要求22所述的非临时性计算机可访问存储介质,其中迭代地一次或多次重复所述确定、所述相加和所述移动包括:
执行符号图的模型,其中所述模型借助多个基于物理学的参数来指定和实现符号图或符号图的元件的基于物理学的属性和行为。
28.按照权利要求27所述的非临时性计算机可访问存储介质,其中对所述模型的所述执行包括:
动态修改符号图或符号图的元件的基于物理学的参数中的一个或多个参数。
29.按照权利要求28所述的非临时性计算机可访问存储介质,其中对一个或多个基于物理学的参数的所述动态修改包括:
把相应的分布图应用于符号图或符号图的元件的一个或多个基于物理学的参数,其中各个分布图指定相应参数的一系列值。
30.按照权利要求28所述的非临时性计算机可访问存储介质,其中所述程序指令可进一步执行,以进行:
显示包含一个或多个控件或指示器的图形用户界面GUI;和
接收指定或修改下述中的一个或多个的用户输入:
所述一个或多个基于物理学的参数中的至少一个参数;或者
模型或模型行为的至少一个定性方面;
其中对所述模型的所述执行是按照指定或修改的至少一个参数或至少一个定性方面进行的。
31.按照权利要求30所述的非临时性计算机可访问存储介质,其中对所述GUI的所述显示以及对指定或修改至少一个参数或至少一个定性方面的用户输入的所述接收是在对所述模型的所述执行的期间动态进行的。
32.按照权利要求27所述的非临时性计算机可访问存储介质,其中程序指令可进一步执行,以进行:
在对所述用户输入的所述接收之前和在获得平衡条件之后,迭代地重复所述确定、所述相加和所述移动;和
显示符号图的动画,包括:
对符号图的所述显示;
图解所述移动;和
对所述调整后的编辑的符号图的所述显示。
33.按照权利要求32所述的非临时性计算机可访问存储介质,其中比实时快地进行对符号图的模型的所述执行,其中程序指令可进一步执行,以进行:
在模型的执行期间,保存一系列的模型状态;
其中所述显示符号图的动画包括:
把一系列的模型状态映射到符号图的一系列图像;和
显示与所述一系列的模型状态对应的符号图的一系列图像。
34.按照权利要求33所述的非临时性计算机可访问存储介质,其中所述映射包含非线性映射。
35.按照权利要求32所述的非临时性计算机可访问存储介质,其中比实时快地进行对符号图的模型的所述执行,其中程序指令可进一步执行,以进行:
在模型的执行期间,保存一系列的模型状态;
其中所述显示符号图的动画包括:
对一系列的模型状态采样,从而产生一系列的采样状态;和
显示与所述一系列的采样状态对应的符号图的一系列图像。
36.按照权利要求22所述的非临时性计算机可访问存储介质,其中用户输入指定或操作符号图中的符号图元件。
37.按照权利要求22所述的非临时性计算机可访问存储介质,其中用户输入调用或指定下述中的一个或多个:
选择符号图中的元件;
向符号图中增加元件;
从符号图中除去元件;
连接符号图中的两个或者更多的元件;
移动符号图中的元件;
放大符号图中的元件;
压缩符号图中的元件;
展开符号图中的元件;
折叠符号图中的元件;
调整符号图中的元件的大小;
显示符号图中的元件的可操作暗示;或
显示符号图中的元件的端点。
38.按照权利要求22所述的非临时性计算机可访问存储介质,其中所述多个元件包含下述中的一个或多个:
至少一个符号图图标;
连接到符号图图标的至少一个边缘;或者
符号图中的至少一个端点。
39.按照权利要求22所述的非临时性计算机可访问存储介质,其中符号图包含图形数据流框图
40.按照权利要求22所述的非临时性计算机可访问存储介质,其中符号图包含图形控制流框图。
41.一种用于编辑符号图的方法,包括:
利用计算机进行:
在显示设备上显示符号图,其中所述符号图包括多个互连图标;
接收编辑符号图的用户输入,从而产生编辑的符号图;
根据所述编辑,向符号图中的多个元件施加力,其中所述施加力操作为调整符号图内的所述多个元件的布置,结果形成调整后的编辑的符号图,其中对所述多个元件的布置的所述调整包括:
根据所述多个元件的位置,确定对于所述多个元件中的每个元件的一个或多个力;
相加对于所述多个元件中的每个元件的力,从而确定合力;
根据合力,移动所述多个元件;和
迭代地一次或多次重复所述确定、所述相加和所述移动,直到获得平衡条件为止;和把调整后的编辑的符号图显示在显示设备上;
其中所述多个元件包括至少一个符号图图标以及下述中的一个或多个:
符号图中的结构图标的边界,或者
符号图的边界;以及
连接到符号图的至少一条线,或者
符号图中的至少一个端点。
42.一种用于编辑符号图的系统,包括:
处理器;和
耦接到处理器的存储器,其中所述存储器保存程序指令,所述程序可由处理器执行,以便:
在显示设备上显示符号图,其中所述符号图包括多个互连图标;
接收编辑符号图的用户输入,从而产生编辑的符号图;
根据基于所述编辑确定的向编辑的符号图中的多个元件施加的力,调整编辑的符号图内的所述多个元件的布置,结果形成调整后的编辑的符号图,其中对所述多个元件的布置的所述调整包括:
根据所述多个元件的位置,确定对于所述多个元件中的每个元件的一个或多个力;
相加对于所述多个元件中的每个元件的力,从而确定合力;
根据合力,移动所述多个元件;和
迭代地一次或多次重复所述确定、所述相加和所述移动,直到获得平衡条件为止;和把调整后的编辑的符号图显示在显示设备上;
其中所述多个元件包括至少一个符号图图标以及下述中的一个或多个:
符号图中的结构图标的边界,或者
符号图的边界;以及
连接到符号图图标的至少一条线,或者
符号图中的至少一个端点。

说明书全文

基于物理学的图形程序编辑器

技术领域

[0001] 本发明涉及符号图(graphical diagram)和图形编辑的领域,更具体地,涉及用于诸如图形程序之类符号图的基于物理学的编辑的系统和方法。

背景技术

[0002] 图形编程已成为程序员可用的强大工具。诸如National Instruments LabVIEW产品之类的图形编程环境已变得非常普及。诸如LabVIEW之类的工具提高了程序员的生产率,越来越多的程序员使用图形编程环境开发其软件应用。特别地,图形编程工具用于测试和测量,数据采用,过程控制,人机界面(MMI),监控与数据采集(SCADA)应用,建模,仿真,图像处理/机器视觉应用,和运动控制,等等。
[0003] 然而,考虑到多数图形程序的二维(2D)性质,就开发人员而言,创建和编辑图形程序通常涉及使图形程序的框图清晰和易于理解(例如,通过对齐图形程序元件(例如,节点),使它们之间的连接线笔直,从而使框图整洁和紧凑)的相当大量的工作量和时间。当在桌上型计算机(例如,工作站)上编辑时,这种样子的开发冗长乏味,并且当通过触摸屏,例如,在平板计算机,比如苹果公司提供的iPadTM上编辑图形程序时,甚至更加成问题。类似的问题通常也适用于一般的(符号)图,例如,系统图,结构图,或者其中用直线或曲线连接图标或节点的任何其它符号图。
[0004] 从而,需求用于编辑图,例如图形程序的改进技术。

发明内容

[0005] 下面介绍用于图(比如图形程序)的基于物理学的编辑的系统和方法的各种实施例附图中主要在图形程序方面图解说明了这里公开的技术, 不过,这里公开的技术一般也适用于其中用直线或曲线互连各个节点或图标(即,符号图元件)的任何符号图,例如,系统图、结构图、图表等。
[0006] 诸如符号图、结构图、系统图、图表之类的图可酌情被显示在计算机系统,例如平板计算机、工作站、膝上型计算机等的显示设备上。通过用户在显示器上安排多个节点或图标,随后互连所述节点或图标,从而创建符号图,可以创建或组合符号图。
[0007] 编辑符号图的用户输入可被接收(到编辑器,例如,图编辑器,比如图形程序编辑器),从而产生编辑的符号图。换句话说,用户输入可指定或实现符号图中的编辑操作。取决于开发平台,可酌情按多种方式,包括(但不限于):指示设备,比如指示设备(例如,鼠标笔、跟踪球等),键盘,计算机触摸屏(例如包括具有触摸界面的平板计算机),计算机触控板等,来供用户输入。
[0008] 可根据编辑调整一个或多个元件在编辑的符号图中的布置,结果产生调整的编辑的符号图。例如,可根据编辑,或者换句话说,响应用户输入指定的编辑操作,例如,响应用户的编辑,对编辑的符号图的一个或多个元件施加一个或多个(模拟)。换句话说,根据编辑,可以计算一个或多个力,并把所述一个或多个力施加于编辑的符号图中的一个或多个元件,从而调整所述一个或多个元件在编辑的符号图中的布置,结果产生调整的编辑的符号图。换句话说,所述方法可计算一个或多个节点的位置(可能还包括大小)的移动和/或对应变化,其中计算的位置的移动和变化是依据模拟力,用基于物理学的模型确定的。从而,所述方法计算这些力,并根据这些计算的力,确定上述移动/变化。
[0009] 注意,确定的力不是施加于实际物理对象的实际物理力,而是施加于具有模拟物理属性,比如质量、负荷等的图元件的模拟力。存在实现和应用这种基于物理学的方案的多种方式。例如,在简单层面,符号图中的元件或者符号图的元件可按照某种规定的关系,相互排斥或吸引。在一个实施例中,节点相互排斥,而导线相互吸引,不过可酌情使用更复杂的方案。通过各种物理学原理的明智利用(和定制),可以定义或规定自动使图紧凑和使线对齐,并且当增加元件、除去元件、调整元件大小、 移动元件等时,可动态调整图(元件)的定律或规则。
[0010] 调整的编辑的符号图可被显示在显示设备上。换句话说,可在显示的符号图中指示图元件的编辑操作和调整或重排的结果。在一些实施例中,元件的调整或移动(或者其它图形上明显的修改)可被动画表示,例如,可向用户动态图解所述调整。换句话说,可以显示图解说明各个元件到平衡状态的移动的动画,在平衡状态下,力平稳并且移动停止。
[0011] 注意在一些实施例中,可以同时地,例如交错地进行所述编辑、调整和显示调整的编辑的形程序的至少一部分。例如,在其中用户输入把节点从第一位置移动到第二位置的情况下,一旦节点的移动开始,就可确定作为结果的净力,从而也相应地开始调整,例如,其它节点可响应所述节点的移动,开始移动,也可相应地被显示,等等。当节点到达第二位置时,可以继续所述力确定、调整和显示,从而使图元件可以达到平衡。如下所述,在一些实施例中,即使在达到平衡之后,也可继续进行已调整图的力确定和显示,不过由于力已平衡(归因于获得平衡),因此不会发生任何调整,从而不会发生显示的任何变化,从而仍在进行物理学仿真可能对用户来说并不明显。
[0012] 在其它实施例中,编辑、调整和显示可以是不连续的事件或操作。例如,用户可编辑符号图,例如,把节点移动到新位置,之后,可在“后台”计算和施加力,一旦达到平衡,就可显示调整后的图。从而,从用户的观点来看,即使底层或相关的模型演化平滑,显示的图也可能演化不平滑,即,显示的图会从编辑的图形图像“跳”到其中图元件的所有运动都已停止的最终的已调整图形图像。

附图说明

[0013] 当结合附图,考虑优选实施例的以下详细说明时,可更好地理解本发明,附图中:
[0014] 图1A图解说明按照本发明的实施例的配置成编辑和调整符号图的计算机系统;
[0015] 图1B图解说明包含可实现本发明的实施例的两个或更多的计算机 系统的网络系统;
[0016] 图2A图解说明按照本发明的一个实施例的仪器控制系统;
[0017] 图2B图解说明按照本发明的一个实施例的工业自动化系统;
[0018] 图3A是可执行或利用符号图,例如,图形程序的例证系统的高级方框图;
[0019] 图3B图解说明可利用符号图,例如,图形程序,完成控制和/或仿真功能的例证系统;
[0020] 图4是图1A、1B、2A、2B和3B的计算机系统的例证方框图;
[0021] 图5是图解说明用于符号图的基于物理学的编辑的方法的一个实施例的流程图
[0022] 图6按照一个实施例,图解说明图形程序的例证方框图;
[0023] 图7按照一个实施例,图解说明符号图编辑器中的节点之间的排斥;
[0024] 图8按照一个实施例,图解说明符号图编辑器中的从属节点排斥;
[0025] 图9按照一个实施例,图解说明符号图编辑器中的线段排斥;
[0026] 图10按照一个实施例,图解说明符号图编辑器中的线接点吸引;
[0027] 图11按照一个实施例,图解说明符号图编辑器中的边界排斥;
[0028] 图12按照一个实施例,图解说明符号图编辑器中的边界吸引;
[0029] 图13A和13B按照一个实施例,图解说明符号图元件的移动,以及图元件的随后重排;
[0030] 图14A-14C按照一个实施例,图解说明符号图元件的放大,包括可操作暗示和端子的显示,元件与另一个元件的连接,和图元件的随后重排,包括符号图元件的压缩;和[0031] 图15按照一个实施例,图解说明例证系统图。
[0032] 尽管本发明容许各种修改和替换形式,不过附图中举例表示了,并且这里详细说明了本发明的具体实施例。然而应明白,附图及其详细说明并不意图把本发明局限于公开的特定形式,相反,本发明覆盖在附加权利要求限定的本发明的精神和范围之类的所有修改、等同物和替换物。

具体实施方式

[0033] 引用纳入的参考文献
[0034] 特此通过引用,仿佛充分并且完整地记载于此似的整体纳入以下参考文献:
[0035] 美国临时申请,序列号61/679,274,“Physics Based Graphical Program Editor”(申请日2012年8月3日)。
[0036] 美国专利申请,序列号12/720,966,“Multi-Touch Editing in a Graphical Programming Language”(申请日2010年3月10日)。
[0037] 美国专利申请,序列号12/572,455,“Editing a Graphical Data Flow Program in a Browser”(申请日2009年10月2日)。
[0038] 美国专利No.7,987,445,“Comparing a Configuration Diagram to a Real System”(申请日2006年1月10日,颁发日2011年7月26日)。美国专利No.4,914,568,“Graphical System for Modeling a Process and Associated Method,”(颁发日1990年4月3日)。
[0039] 美国专利No.5,481,741,“Method and Apparatus for Providing Attribute Nodes in a Graphical Data Flow Environment”(申请日1993年9月22日,颁发日1996年1月2日)。
[0040] 美国专利No.6,173,438,“Embedded Graphical Programming System”(申请日1997年8月18日)。
[0041] 美国专利No.6,219,628,“System and Method for Configuring an Instrument to Perform Measurement Functions Utilizing Conversion of Graphical Programs into Hardware Implementations”(申请日1997年8月18日)。
[0042] 美国专利No.7,210,117,“System and Method for Programmatically Generating a Graphical Program in Response to Program Information”,(申请日2000年12月20日)。
[0043] 术语
[0044] 下面是在本申请中使用的术语的术语表:
[0045] 存储介质-任意的各种存储设备或储存装置。术语“存储介质”意图包括安装介质,例如,CD-ROM、软盘104或磁带设备;计算机系统存储 器或随机存取存储器,比如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等;非易失性存储器,比如闪存,磁介质,例如硬盘驱动器或光存储器;寄存器,或者任何相似种类的存储元件,等等。存储介质可包含其它种类的存储器,以及它们的组合。另外,存储介质可以位于其中执行程序的第一计算机中,或者可以位于通过网络(比如因特网)连接到与第一计算机的不同的第二计算机中。在后一情况下,第二计算机可把程序指令提供给第一计算机,以便执行。术语“存储介质”可包括存在于不同位置,例如,存在于通过网络连接的不同计算机中的两个或更多的存储介质。
[0046] 载体介质-如上所述的存储介质,以及物理传输介质,比如总线、网络和/或传送诸如电信号、电磁信号或数字信号的其它物理传输介质。
[0047] 可编程硬件元件-包括各种硬件设备,所述硬件设备包含通过可编程互连连接的多个可编程功能。例子包括FPGA(现场可编程阵列)、PLD(可编程逻辑器件)、FPOA(现场可编程对象阵列)和CPLD(复杂PLD)。可编程功能块可从细粒度(组合逻辑或查寻表)到粗粒度(算术逻辑单元或处理器核心)不等。可编程硬件元件也可被称为“可重构逻辑”。
[0048] 软件程序-术语“软件程序”意图具有其通常含义的完整广度,包括可保存在存储介质中并由处理器执行的任意种类的程序指令、代码、脚本和/或数据,或者它们的组合。例证的软件程序包括用基于文本的编程语言,比如C、C++、PASCAL、FORTRAN、COBOL、JAVA、汇编语言等编写的程序;图形程序(用图形编辑语言编写的程序);汇编语言程序;已被编译成机器语言的程序;脚本;和其它种类的可执行软件。软件程序可包含按照某种方式交互操作的两个或者更多的软件程序。注意,这里说明的各个实施例可用计算机或软件程序实现。软件程序可作为程序指令被保存在存储介质上。
[0049] 硬件配置程序-可用于对可编程硬件元件进行编程或配置的程序,例如,连线表或比特文件。
[0050] 图-显示在计算机显示器上的直观指示图中的图形元件之间的关系的图形图像。图可包括结构图、系统图、物理图和/或图形程序等等。在 一些实施例中,图是可执行的,以完成指定的功能,例如图所代表的测量或工业操作。可执行的图可包括图形程序(下面说明),其中利用线连接的图标图解说明图形程序的功能。另一方面或者另外,图可包含系统图,所述系统图指示由一个或多个设备实现的功能和/或连接。各种图形用户界面(GUI),例如面板可与图关联。
[0051] 程序-术语“程序”意图具有其通常含义的完整广度。术语“程序”包括1)可被保存在存储器中并且可由处理器执行的软件程序,或2)可用于配置可编程硬件元件的硬件配置程序。
[0052] 图形程序-包含多个互连的节点或图标的程序,其中所述多个互连的节点或图标在视觉上指示程序的功能。互连的节点或图标是程序的图形源代码。图形功能节点也可被称为块。
[0053] 下面提供图形程序的各个方面的例子。下面的例子和讨论并不意图限制图形程序的上述定义,而是提供术语“图形程序”包含的内容的例子:
[0054] 图形程序中的节点可按数据流、控制流和/或执行流格式中的一种或多种格式连接。也可按“信号流”格式连接节点,信号流是数据流的子集。
[0055] 可用于创建图形程序的例证图形程序开发环境包括National Instruments的LabDasyLabTM、DiaDemTM和Matrixx/SystemBuildTM,MathWorks的Agilent的VEETM,Coreco的WiTTM,PPT Vision的Vision Program ManagerTM,Measurement Computing的SoftWIRETM,Northwoods Software的SanscriptTM,Khoral Research的KhorosTM,HEM Data的SnapMasterTM,Visual Solutions的VisSimTM,利用SES(科学与工程软TM TM
件)的ObjectBench ,和Advantech的VisiDAQ ,等等。
[0056] 术语“图形程序”包括在图形建模环境中创建的模型或框图,其中所述模型或框图包含互连的在视觉上指示模型或框图的操作的块(即,节点)或图标;例证的图形建模环境包括 SystemBuildTM、VisSimTM、Hypersignal Block DiagramTM等。
[0057] 图形程序可在计算机系统的存储器中被表示成数据结构和/或程序指令。图形程序,例如,这些数据结构和/或程序指令可被编译或解释,从而 产生完成如在图形程序中所示的期望方法或处理的机器语言。
[0058] 给图形程序的输入数据可以接收自任意各种来源,比如接收自设备,被测单元,测量或控制的处理,另一个计算机程序数据库,或者接收自文件。另外,用户可利用图形用户界面,例如面板,把数据输入图形程序或虚拟仪器。
[0059] 视情况,图形程序可具有与图形程序相关的GUI。这种情况下,多个互连的块或节点通常被称为图形程序的框图部分。
[0060] 系统图-具有一个或多个设备图标和图形程序代码的图,其中设备图标用于指定和/或在视觉上指示图形程序代码的不同部分被部署在哪里/在哪里执行。系统图可指示程序或代码在哪里(即,在哪个系统/设备上)被执行。例如,系统图可包括表示显示的图形程序代码的各个部分在哪里被执行的图形指示。在一些实施例中,各个图标可表示具有供执行的相关程序的处理元件。图标中的至少一个图标可表示逻辑元件(例如,可执行的软件功能或图形程序代码)。一个或多个设备图标可代表可配置的元件。从而,系统图可提供使用户易于理解图形程序代码被部署在系统中的各个设备之中的系统视图。
[0061] 节点-在图形程序的上下文中,可包含在图形程序中的元件。图形程序中的图形程序节点(或者简单地,节点)也可被称为块。节点可具有在图形程序中表示该节点的相关图标,以及实现该节点的功能的底层代码和/或数据。例证的节点(或块)包括功能节点,子程序节点,端节点,结构节点等。利用连接图标或连接线,在图形程序中可把节点连接在一起。
[0062] 线(wire)-在显示器上显示在图中的连接图中的图标或节点的图形元件。图可以是图形程序(其中图标对应于软件功能),系统图(其中图标对应于硬件设备或软件功能)等。线通常用于指示、指定或实现图标之间的通信。线可代表图标之间的逻辑数据传输,或者可代表物理通信介质,比如以太网、USB等。线可按各种协议实现和工作,包括数据流语义,非数据流语义等。一些线,例如,缓存数据传输线是可配置的,以实现或遵循规定的协议或语义。线可指示图标之间的数据、定时信息、状态信息、控制信息和/或其它信息的通信。在一些实施例中,线可具有不同 的外观,所述不同的外观指示线的不同特性(例如,数据交换语义的种类,数据传输协议,数据传输介质,和/或在图标之间传送的信息的种类,等等)。
[0063] 数据流程序-其中程序体系结构是指定数据在程序内的流动的有向图的程序体系结构,从而每当必要的输入数据可用时功能执行的程序。数据流程序可以与过程程序形成对照,过程程序指定待进行的计算的执行流。这里使用的“数据流”或“数据流程序”指的是“动态调度的数据流”和/或“静态定义的数据流”。
[0064] 图形数据流程序(或图形数据流图)-也是数据流程序的图形程序。图形数据流程序包含多个互连的节点(块),其中节点之间的连接的至少一个子集在视觉上指示一个节点产生的数据被另一个节点使用。LabVIEW VI是图形数据流程序的一个例子。Simulink框图是图形数据流程序的另一个例子。
[0065] 图形用户界面-本术语意图具有其通常含义的完整广度。术语“图形用户界面”通常被缩写成“GUI”。GUI可以只包含一个或多个输入GUI元件,只包含一个或多个输出GUI元件,或者包含输入和输出GUI元件。
[0066] 下面提供GUI的各个方面的例子。下面的例子和讨论并不意图限制GUI的通常含义,而是提供术语“图形用户界面”包含的内容的例子:
[0067] GUI中包含具有一个或多个GUI元件的单个窗口,或者可包含多个单独的GUI元件(或者都具有一个或多个GUI元件的多个单独的窗口),其中视情况,各个单独的GUI元件或窗口可被一起并列显示。
[0068] GUI可以与图形程序相关。在这种情况下,可以利用各种机制连接GUI中的GUI元件和图形程序中的节点。例如,当在GUI中创建输入控件和输出指示器时,在图形程序或框图中,可以自动创建对应的节点(或端子)。另一方面,用户可把端节点放置在框图中,这会导致在编辑时或者稍后在运行时,GUI中的对应GUI元件面板对象的显示。再例如,GUI可包含嵌入图形程序的框图部分中的GUI元件。
[0069] 面板(front panel)-包括输入控件和输出指示器的图形用户界面,使用户能够在程序执行时,交互地控制或操作提供给程序的输入和查看程序 的输出。
[0070] 面板是一种GUI。如上所述,面板可以与图形程序相关。
[0071] 在仪器应用中,面板可被模拟成仪器的面板。在工业自动化应用中,面板可被模拟成设备的MMI(人机界面)。用户可调整面板上的控件,以影响输入和在相应的指示器上查看输出。
[0072] 图形用户界面元件-图形用户界面的元件,比如用于提供输入或显示输出。例证的图形用户界面元件包含输入控件和输出指示器。
[0073] 输入控件-用于向程序提供用户输入的图形用户界面元件。输入控件显示用户输入的值,并能够由用户自行操作。例证的输入控件包含拨号盘、旋钮、滑动块、输入文本框等。
[0074] 输出指示器-用于显示来自程序的输出的图形用户界面元件。例证的输出指示器包括图表、曲线图、量规、输出文本框、数字显示等。输出指示器有时被称为“输出控件”。
[0075] 计算机系统-任意各种计算或处理系统,包括个人计算机(PC)、大型计算机系统、工作站、网络设备、因特网设备、个人数字助手(PDA)、电视系统、网格计算系统、或者其它设备或设备的组合。通常,可以宽广地定义术语“计算机系统”,以包含具有执行来自存储介质的指令的至少一个处理器的任意设备(或者设备的组合)。
[0076] 测量设备-包括仪器、数据采集设备、智能传感器、和配置成获取和/或保存数据的任意各种设备。测量设备还可视情况被进一步配置成分析或处理获得或保存的数据。测量设备的例子包括仪器,比如传统的独立“盒式”仪器,基于计算机的仪器(卡上的仪器)或外部仪器,数据采集卡,在计算机之外的类似于数据采集卡地工作的设备,智能传感器,机箱中的一个或多个DAQ或测量卡或模块,图像采集设备,比如图像采集(或机器视觉)卡(也称为视频采集卡)或智能照相机,运动控制设备,具有机器视觉的机器人,和其它类似种类的设备。例证的“独立”仪器包括示波器、万用表、信号分析器、任意波形发生器、分光器,以及类似的测量、测试或自动化仪器。
[0077] 测量设备还可被配置成例如响应获得或保存的数据的分析,执行控制 功能。例如,测量设备可响应特定数据,向外部系统(比如运动控制系统)或者向传感器发送控制信号。测量设备还可被配置成执行自动化功能,即,可接收和分析数据,并且作为响应而发出自动控制信号。
[0078] 自动地-指的是在不存在直接指定或进行动作或操作的用户输入的情况下,由计算机系统(例如,计算机系统执行的软件)或设备(例如,电路、可编程硬件元件、ASIC等)执行的动作或操作。从而,用语“自动地”与用户人工进行或指定的操作相反,在用户人工进行或指定的操作中,用户提供输入,以直接进行该操作。自动化过程可由用户提供的输入启动,不过“自动”进行的后续动作不是由用户指定的,即,不是“人工”进行的,在“人工”进行的情况下,用户指定要进行的各个动作。例如,通过选择各个字段并提供指定信息的输入(例如,通过键入信息,选择复选框,选择单选按钮等)来填写电子表格的用户手动填写所述表格,即使响应用户动作,计算机系统必须更新所述表格。所述表格可由计算机系统自动填写,这种情况下,计算机系统(例如,在计算机系统上运行的软件)分析表格的各个字段,并填写表格,而不存在指定各个字段的答案的任何用户输入。如上所述,用户可调用表格的自动填写,但是不涉及表格的实际填写(例如,用户并不手动指定各个字段的答案,相反,各个字段的填写是自动完成的)。本说明书提供响应用户采取的行动自动进行的操作的各种例子。
[0079] 图1A-计算机系统
[0080] 图1A图解说明配置成实现本发明的实施例的计算机系统82。下面说明符号图的基于物理学的编辑的方法的一个实施例。
[0081] 如图1A中所示,计算机系统82可包括配置成在符号图被创建和/或编辑,并且在其中符号图是图形程序的实施例中,可能被执行时,显示符号图的显示设备。例如,显示设备可显示符号图编辑器或开发环境(例如,用于创建、编辑和/或执行图形程序的图形编程开发环境应用,比如National Instruments Corporation提供的LabVIEW图形程序开发环境)的图形用户界面。图形程序开发环境可被配置成利用或支持基于物理学的操作来开发图形程序。显示设备还可被配置成在图形程序的执行期间,显示图形程序的图形用户界面或面板。图形用户界面可包含取 决于计算平台的任意种类的图形用户界面。
[0082] 计算机系统82可包括至少一个存储介质,按照本发明的一个实施例的一个或多个计算机程序或软件组件可被保存在所述至少一个存储介质上。例如,存储介质可保存可执行的、以进行这里说明的方法的一个或多个程序,例如,图形程序。另外,存储介质可保存用于创建和编辑符号图的图编辑器,例如,用于创建和/或执行图形程序的图形编程开发环境应用。存储介质还可保存操作系统软件,以及用于计算机系统的操作的其它软件。各个实施例还包括在载体介质上,接收或保存按照以上说明实现的指令和/或数据。
[0083] 图1B-计算机网络
[0084] 图1B图解说明包括耦接到第二计算机系统90的第一计算机系统82的系统。计算机系统82可通过网络84(或计算机总线),耦接到第二计算机系统90。计算机系统82和90都可以酌情是任意各种计算机系统。网络84也可是任意各种网络,包括LAN(局域网),WAN(广域网),因特网或企业内部网,等等。在一些实施例中,符号图编辑器或开发环境,例如,图形程序开发环境可被配置成分布地工作。例如,开发环境可以在第二计算机系统90上托管或运行,而开发环境的GUI可显示在计算机系统82上,用户可通过网络创建和编辑符号图或图形程序。在另一个实施例中,开发环境可被实现成基于浏览器的应用。例如,用户利用在计算机系统82上运行的浏览器程序访问并从第二计算机系统90下载开发环境和/或符号图或图形程序,以创建和/或编辑符号图或图形程序,这种情况下,开发环境可在用户的浏览器内运行。在2009年10月2日提交的美国专利申请,序列号12/572,455,“Editing a Graphical Data Flow Program in a Browser”中,提供了关于图形程序的这种基于浏览器的编辑的更多细节,上面通过引用纳入了该专利申请。
[0085] 在其中图是图形程序的一些实施例中,计算机系统82和90可分布地执行图形程序。例如,计算机82可执行图形程序的框图的第一部分,而计算机系统90可执行图形程序的框图的第二部分。再例如,计算机82可显示图形程序的图形用户界面,而计算机系统90可执行图形程序的框 图。在一个实施例中,图形程序的图形用户界面可被显示在计算机系统82的显示设备上,框图可在耦接到计算机系统82的设备上执行。设备可包括可编程硬件元件和/或可包括可执行实时操作系统的处理器和存储器介质。在一个实施例中,图形程序可被下载到设备上并在设备上执行。例如,在实时系统中,图形程序与之相关的应用开发环境可支持下载图形程序,以便在所述设备上运行。
[0086] 例证系统
[0087] 本发明的实施例涉及进行测试和/或测量功能;控制和/或模拟仪器或工业自动化硬件;建模和仿真功能,例如,模拟或仿真正在开发或测试的设备或产品,等等。其中可使用符号图或图形程序的例证测试应用包括硬件在环(hardware-in-the-loop)测试和快速控制原型,等等。
[0088] 不过,注意本发明的实施例可用于许多应用,并不局限于上述应用。换句话说,在本说明中讨论的应用仅仅是例证性的,本发明的实施例可用在任意各种系统中。从而,本发明的系统和方法的实施例被配置成用在任意各种应用中,包括其它各种设备,比如多媒体设备、视频设备、音频设备、电话设备、因特网设备等的控制,以及通用软件应用,比如字处理、电子表格、网络控制、网络监控、金融应用、游戏等。
[0089] 图2A图解说明实现本发明的实施例的例证仪器控制系统100。系统100包括耦接到一个或多个仪器的主计算机82。主计算机82可包含CPU、显示屏、存储器、和诸如所示的鼠标或键盘之类的一个或多个输入设备。计算机82可使用所述一个或多个仪器操作,以分析、测量或控制被测单元(UUT)或过程150。
[0090] 所述一个或多个仪器可包括GPIB仪器112和相关的GPIB接口卡122,插入或以其它方式与具有相关的信号调节电路126的机箱124耦接的数据采集板114、VXI仪器116、PXI仪器118、视频设备或照相机132和相关的图像采集(或机器视觉)卡134、运动控制设备136和相关的运动控制接口卡138、和/或一个或多个基于计算机的仪器卡142,以及其它各种设备。计算机系统可耦接到并使用这些仪器中的一个或多个仪器操作。仪器可耦接到被测单元(UUT)或过程150,或者可被耦接,以接收一般由 转换器(transducer)产生的现场信号。系统100可用在数据采集和控制应用中,用在测试和测量应用中,用在图像处理或机器视觉应用中,用在过程控制应用中,用在人机界面应用中,用在仿真应用中,或者用在硬件在环验证应用等中。
[0091] 图2B图解说明可实现本发明的实施例的例证工业自动化系统160。工业自动化系统160类似于图2A中所示的仪器或测试和测量系统100。为方便起见,与图2A中的元件类似或等同的元件具有相同的附图标记。系统160可包含耦接到一个或多个设备或仪器的计算机82。计算机82可包含CPU、显示屏、存储器、和一个或多个输入设备,比如所示的鼠标或键盘。计算机82可使用所述一个或多个设备操作,以执行关于过程或设备150,比如MMI(人机界面)、SCADA(监视控制和数据采集)、便携式或分布式数据采集、过程控制、高级分析或其它控制等等的自动功能。
[0092] 所述一个或多个设备可包括插入或以其它方式与具有相关的信号调节电路126的机箱124耦接的数据采集卡114,PXI仪器118,视频设备132和相关的图像采集卡134,运动控制设备136和相关的运动控制接口卡138,现场总线设备170和相关的现场总线接口卡172,PLC(可编程逻辑控制器)176,串行仪器182和相关的串行接口卡184,或者分布式数据采集系统,比如可从National Instruments获得的FieldPoint系统,以及其它各种设备。
[0093] 图3A是可执行或利用符号图(例如,图形程序)的例证系统的高级方框图。图3A图解说明包含控制器92和设施(plant)94的通用控制和/或仿真系统的普通高级框图。控制器92代表用户正在设法开发的控制系统/算法。设施94代表用户正在试图控制的系统。例如,如果用户正在设计用于汽车的ECU,那么控制器92是ECU,设施94是汽车的发动机(可能还有其它组件,比如变速箱、制动器等)。如图所示,用户可创建指定或实现控制器92和/或设施
94的功能的图形程序。例如,控制工程师可利用建模和仿真工具创建设施94的模型(图形程序),和/或创建控制器92用算法(图形程序)。
[0094] 图3B图解说明进行控制和/或仿真功能的例证系统。如图所示,控制器92可用执行或实现图形程序的计算机系统82或其它设备(例如,包括处理器和存储介质和/或包括可编程硬件元件)实现。按照相似的方式,设施94可由执行或实现图形程序的计算机系统或其它设备144(例如,包括处理器和存储介质和/或包括可编程硬件元件)实现,或者可在真实的物理系统(比如汽车发动机)中实现,或者实现成所述真实的物理系统。
[0095] 在本发明的一个实施例中,可以创建用于进行快速控制原型的一个或多个图形程序。快速控制原型(RCP)通常指的是用户利用其开发控制算法并在连接到真实系统的目标控制器上快速执行该算法的过程。用户可利用图形程序开发控制算法,图形程序可在控制器92上,例如,在计算机系统或其它设备上运行。计算机系统82可以是支持实时执行的平台,例如,包括运行实时操作系统(RTOS)的处理器的设备,或者包括可编程硬件元件的设备。
[0096] 在本发明的一个实施例中,可以创建用于进行硬件在环(HIL)仿真的一个或多个图形程序。硬件在环(HIL)指的是实时执行设施模型94,以测试真实控制器92的操作。例如,一旦设计了控制器92,在真实的设施,例如真实的汽车中彻底地实际测试控制器92会成本高并且复杂。从而,实时地运行(利用图形程序实现的)设施模型,以使真实的控制器92“相信”它被连接到真实的设施(例如,真实的发动机),或者好像它被连接到真实的设施(例如,真实的发动机)似的工作。
[0097] 在上面的图2A、2B和3B的实施例中,各个设备中的一个或多个设备可通过网络,比如因特网相互耦接。在一个实施例中,用户可操作为从多个可能的目标设备中选择目标设备,以便利用图形程序编程或配置。从而,用户可在计算机上创建图形程序,并在该计算机上利用(执行)该图形程序,或者把图形程序部署到远离计算机并通过网络耦接到计算机的目标设备上(以便在所述目标设备上远程执行)。
[0098] 比如在图2A和2B中所示的应用中,为测量、仪器控制、工业自动化、建模或仿真进行数据采集、分析和/或表示的图形软件程序可被称为虚拟仪器。
[0099] 注意,一些符号图可包括图形程序。例如,在一些实施例中,(图形)系统图可包括硬件设备图标和实现或表示图形程序的软件或程序图标,例如,系统图可指定哪些程序(例如,图形程序)被部署或者要被部署到哪些硬件设备。此外,在一些实施例中,这种系统图是可执行的,以把程序部署到指定的设备,并且甚至可能在这些设备上调用程序的执行,例如,可调用利用系统图指定的分布式系统的执行。
[0100] 图4-计算机系统方框图
[0101] 图4是表示在图1A和1B中图解所示的计算机系统82和/或90,或者在图2A或2B中所示的计算机系统82的一个实施例的方框图。注意可酌情使用任意种类的计算机系统结构或体系结构,图4图解说明典型的PC实施例。另外注意,计算机系统可以是通用计算机系统,在安装在机箱中的卡上实现的计算机,或者其它种类的实施例。为了简单起见,省略了不是为理解本说明所必需的计算机的元件。
[0102] 计算机可包括耦接到处理器或主总线162的至少一个中央处理器或CPU(处理器)160。CPU 160可以是任意各种类型,包括x86处理器,例如,Pentium系列,PowerPC处理器,出自RISC处理器的SPARC系列的CPU,以及其它。一般包含RAM并且称为主存储器的存储介质
166通过存储控制器164耦接到主总线162。主存储器166可保存配置成利用或支持基于物理学的编辑操作的符号图(例如,图形程序)开发环境,和由此开发的符号图(例如,图形程序)。主存储器还可保存操作系统软件,以及供计算机系统的操作之用的其它软件。
[0103] 主总线162可通过总线控制器168或总线桥逻辑,耦接到扩展或输入/输出总线170。扩展总线170可以是PCI(外围组件互连)扩展总线,不过可以使用其它总线类型。扩展总线170包括用于如上所述的各种设备的插槽。计算机82还包含耦接到扩展总线170的视频显示子系统180和硬盘驱动器182。计算机82还可包括耦接到GPIB总线112的GPIB卡122,和/或耦接到VXI机箱116的MXI设备186。
[0104] 如图所示,设备190也可连接到计算机。设备190可包括可执行实时操作系统的处理器和存储器。设备190还可或改为包含可编程硬件元 件。计算机系统可被配置成把实现这里公开的功能的程序,例如图形程序部署到设备190。部署的程序可以采取电路设计/实现,例如,构成的可编程硬件元件或ASIC的形式。在一些实施例中,部署的程序可以采用直接代表图形程序的图形程序指令或数据结构的形式。另一方面,部署的图形程序可以采取从图形程序生成的文本代码(例如,C代码)的形式。再例如,部署的图形程序可以采取从图形程序或者从文本代码生成的编译代码的形式,所述文本代码又是从图形程序生成的。不过注意,部署到硬件(例如,可编程硬件元件或ASIC)提供不可从基于CPU的实现获得的益处。
[0105] 图5-编辑符号图的方法的流程图
[0106] 图5图解说明利用基于物理学的编辑操作,编辑符号图(或者简单地“图”),例如图形程序、系统图、结构图,或者期望的任何其它种类图或图表的方法。图5中所示的方法可以和在上述附图中所示的任意计算机系统或设备以及其它设备一起使用。在各个实施例中,所示的方法要素中的一些要素可被同时进行,按与所示顺序不同的顺序进行,或者可被省略。可酌情进行另外的方法要素。如图所示,该方法可如下工作。
[0107] 首先,在502,符号图(例如,图形程序)可被显示在计算机系统82的显示设备上(或者不同的计算机系统上)。通过用户在显示器上排列多个节点或图标,随后互连各个节点,从而创建图形程序,可以创建或组合符号图。响应用户组合符号图,可以创建和保存表示符号图的数据结构。在其中符号图是图形程序的实施例中,可按数据流、控制流或执行流格式中的一个或多个格式,互连节点。图形程序从而包含在时间上指示程序的功能的多个互连节点或图标。如上所述,图形程序可包含框图,还可包括用户界面部分或面板部分。在图形程序包括用户界面部分的情况下,用户可视情况在显示器上组合用户界面。例如,用户可利用LabVIEW图形编程开发环境创建图形程序。图形编程开发环境可被配置成支持基于物理学的编辑操作,如下更详细所述。
[0108] 在备选实施例中,通过用户创建或指定原型,之后根据原型自动或编程地创建图形程序,可在502中创建图形程序。在通过引用,仿佛充分并 且完整地记载于此似的整体纳入的美国专利申请,序列号09/587,682,“System and Method for Automatically Generating a Graphical Program to Perform an Image Processing Algorithm”中,说明了这种功能。可酌情由用户或者可编程地用其它方式创建图形程序。图形程序可实现期望由仪器进行的测量功能。
[0109] 图6按照一个实施例,图解说明简单的例证符号图,具体地,图形程序600。可以看出,该例证图形程序包括各个互连的图形程序节点,包括“直方图节点”602、“加法节点”、“乘法节点”606、“减法节点”608和“绝对值节点”610。注意所示的节点仅仅是例证性的,可以酌情使用任何其它图形程序节点或结构,例如包括其中可以放置其它节点的框架的循环节点或结构,比如图形WHILE循环,图形FOR循环等。带有框架的节点或结构的其它例子包括图形分情况语句、图形序列结构和图形条件结构等等。各种例证的图形程序元件,比如在图6的图形程序中所示的图形程序元件及其变形将用于图解说明下面参考图7-12说明的各种例证的基于物理学的编辑操作。不过应注意,相同或相似的技术可应用于其它各种符号图。
[0110] 在504,编辑符号图的用户输入可被接收(例如,接收到编辑器,比如图形程序编辑器),从而产生编辑的符号图。换句话说,用户输入可以指定或实现符号图中的编辑操作。取决于编辑器或开发平台,可酌情按各种方式,包括(但不限于)下述任意之一:指示设备,比如指示设备(例如,鼠标、铁笔、跟踪球等),键盘,计算机触摸屏(例如包括具有触摸界面的平板计算机),计算机触控板等,来提供用户输入。
[0111] 在506,可以调整一个或多个元件在编辑的符号图中的放置,结果产生调整的编辑的符号图。例如,响应用户,或者换句话说,响应利用用户输入指定的编辑操作,例如,响应编辑,向编辑的符号图中的一个或多个元件施加一个或多个(模拟)力。换句话说,根据用户输入(或编辑操作),可以计算并向编辑的符号图中的一个或多个元件施加一个或多个力,从而调整在编辑的符号图之内的一个或多个元件的放置,或者调整编辑的符号图的一个或多个元件的放置(例如各个位置,可能还包括边界位置)(或者大体上图元素或图的其它几何属性),结果产生调整的编辑的符 号图。换句话说,所述方法可操作为计算一个或多个节点或其它元件,或者整个图的移动和/或位置(可能包括大小或形状)的对应变化,其中计算的移动和位置的变化是依据模拟力,利用基于物理学的模型确定的。从而,所述方法计算这些力,并根据这些计算的力确定上述移动/变化。换句话说,所述方法可操作为计算图中的一个或多个节点的变化,例如,一个或多个节点的移动和/或位置(可能包括大小)的对应变化,其中计算的移动和位置的变化是依据模拟力,利用基于物理学的模型确定的。从而,所述方法计算这些力,并根据这些计算的力,确定上述移动/变化。
[0112] 注意,确定的力不是施加于实际物理对象的实际物理力,而是施加于具有模拟物理属性,例如质量、负荷等的图元件的模拟力。存在各种实现和应用这种基于物理学的方案的多种方式。例如,在简单层面,符号图中的元件或者符号图的元件可按照某种规定的关系,相互排斥或吸引。在一个实施例中,节点相互排斥,而线(或者更一般地,边缘或曲线)相互吸引,不过可酌情使用更复杂的方案。通过各种物理学原理的明智利用(和定制),可以定义或规定自动使图紧凑和使线对齐,并且当增加元件、除去元件、或移动元件时,可动态调整图(元件)的定律或规则。
[0113] 在508,调整的编辑的符号图可被显示在显示设备上。换句话说,可在显示的调整后的编辑的符号图中指示编辑的结果,包括力对各个元件的任何效果。
[0114] 在一些实施例中,向一个或多个元件施加力可包括根据所述一个或多个元件的位置,确定对于所述一个或多个元件中的每个元件的一个或多个力,相加对于所述一个或多个元件中的每个元件的力,从而确定合力,根据合力移动所述一个或多个元件,并迭代地一次或多次重复所述确定、相加和移动,直到获得平衡条件为止,即,直到力平衡,并且元件停止移动为止。在一个实施例中,显示调整的编辑的符号图可包括显示动画(或“电影”),所述动画图解说明图元件(或者一般地图,例如,图边界、形状等)的移动(可包括调整大小,调整形状,或者以其它方式改变图形特征或几何学),如下详细所述。
[0115] 图7-12--例证的基于物理学的编辑操作
[0116] 图7-12图解说明对于符号图的各种例证的基于物理学的编辑操作,不过应注意,所示操作仅仅是例证性的,并不意图把基于物理学的编辑操作局限于任何特定的一组编辑操作,或者任何特定种类的符号图。注意在这些例子中,和在下面说明的例证附图中,力用箭头指示,每个箭头表示施加于图形程序(或者更一般地,符号图)元件(包括程序边界)的力。
[0117] 在一个实施例中,归因于简单的库仑力(r-2力)的不需要的长程效应,可以指定短程力在元件之间产生作用。这种短程力可按照类似于“泡沫”的方式,在元件(例如节点)周围起作用,这种情况下,例如当两个节点过于接近时,它被“压缩”,从而迫使节点分开,不过一旦节点分开(足够远),那么力就变成0。图7中图解说明了这种例证性的力,图7中,可以看出,定义了扩展到节点的正常界限之外的“扩展界限”(上面的“泡沫填充”)。响应这些指定的扩展界限的重叠,可以确定与重叠区域成比例的排斥力,并应用于各个节点,如用箭头“排斥力”所示。从而,如果用户把节点“投放”到元件已密集的框图上,那么图中的各个元件会自动重排它们自己,为新节点留出空间,和/或新节点可自动移动,以便图中的拥挤度降至最小。
[0118] 注意在一些实施例中,在符号图中,可不实际表示或图示扩展界限、重叠区域和排斥力(所示的箭头);然而,在其它实施例中,在符号图中,可以显示扩展界限、重叠区域和/或合力(和/或本技术的任何其它方面),例如,以向用户指示可能从编辑操作产生的结果。这些各个方面的这种显示可以是暂时的,例如,可根据需要在编辑操作结束时、一旦已施加了力时等消失。
[0119] 作为另一个例子,在一个例证实施例中,可以定义或规定把节点移向它们从属于(depend on)的节点的右侧,即,移向它们从其接收输入的节点,即“源节点”的右侧(和/或把源节点移向从属节点的左侧)的短程力。图8中表示了这种力的例证图解。如图所示,在这个例子中,当节点(标记为“从属节点”)被连线,从而接收来自另一个节点(“源节点”,简单地标记为“节点”)的输入时,在指定的源基准线和目的地基准线之间可以确定这里称为“倒退距离”的距离。这些基准线按照和图7的“泡沫垫” 类似的方式,指示或区分节点的扩展边界,不过可能局限于具有I/O连接的节点的侧面,在这种情况下,左侧和右侧,如图所示。可以看出,倒退距离仅仅是这些扩展“连接”边界之间的投射重叠。这里,用语“投射”(projected)指的是各个区域只在1D(平)投射方向重叠的事实。图8中另外还指出,可确定与确定的倒退距离成比例的排斥力,并应用于各个节点,从而把从属节点移向(源)节点的右侧(这种情况下,还使源节点向左移动)。
[0120] 类似的技术可适用于连接图形程序中的节点的线。例如,在一个实施例中,利用相同或相似的短程力,线段可排斥节点,以及相互排斥。图9按照一个实施例,图解说明关于节点的线段排斥。如图9所示,线段可具有延伸超出线段界限的相关的扩展段界限。如果扩展段界限(或它的指定部分,例如,所示的垂直段)与节点扩展边界重叠,如用所示的重叠区域指示,那么可以确定与重叠区域成比例的排斥力,并施加于节点和/或线段(在图解所示的实施例中,力被施加于这两者),从而移动分开它们。
[0121] 作为另一种例证情况,导线接点可具有使线的平行段之间的距离降至最小的相关吸引力。图10图解说明其中接点1和接点2是线的垂直段的邻近接点的例证实施例,其中所述线可连接未图示的两个节点。注意通常,图形程序中的线段被约束成要么是垂直的,要么是水平的,如图所示。在这个例子中,确定接点1和接点2之间的距离,然后确定与该距离成比例的吸引力,并施加于各个接点,从而施加于它们各自的水平段,从而彼此更靠近地移动接点/段。注意在这个例子中,吸引力通常随着接点/段之间的距离的增大而增大。尽管关于图形程序线说明了以连接元件为目标的以上技术,不过,以上技术也适用于符号图中的连接符号图元件的任何其它类型的连接元件(例如,图表边缘、直线或曲线)。
[0122] 应注意使用的特定的力依存性,例如,与距离成正比(和/或反比)仅仅是例证性的,可以酌情使用任意种类的力和依存性。例如,注意,图10中插入的表示上述(与距离的)比例关系的力与距离曲线图可以只在中程距离下应用。如图所示,在这种例证情况下,在近程和在远程,吸引 力不再与距离线性相关。更具体地,随着距离增大,合力的大小最终稳定,如用所示的“极限”线指示。类似地,随着距离(从中程)减小,力的大小急剧增大,随后更快速地下降,结果产生在某个最佳距离,使线段彼此“抓住”的力分布图。从而,在一些实施例中,力定律或分布图可包括在较小距离的非线性分量。通过把这种技术应用于线,可自动伸直较小的线锯齿状部分。当然,可以酌情定义和使用任何其它力分布图,结果产生受影响元件的对应的、可能复杂的行为。
[0123] 在另一个例子中,节点和边界(例如,结构节点的边界和/或图形程序(或者更一般地,图)本身的边界)可具有相关的力关系。例如,一些结构节点包括可包含其它节点的框架或边框,例如循环、序列结构等,从而框架具有内部边界。在一些实施例中,节点和线段可利用与上面所述类似的短程图,排斥封闭结构(节点)的边界。
[0124] 图11图解说明其中结构节点的框架的内部边界具有相关的插入边界(或者内部扩展边界,例如,按上述比喻的“泡沫填充”)的例证实施例。类似于图7的例子,如果节点的扩展边界与框架的插入边界重叠,那么可以确定与作为结果的重叠区(标记为重叠区)成比例的排斥力,并施加于所述节点和/或框架。注意在所示的实施例中,其插入边界重叠的是左框边缘/边界,从而对其施加的合力是水平的(并且向左)。在一些实施例中,这种力可移动整个框架/结构节点。然而,在其它实施例中,只有“重叠的”框架段可被移动,从而可在施加的力的方向上拉伸框架,结果沿该方向自动放大,以容纳该节点。另外如图所示,节点经历向右的对应力,从而可相应移动。
[0125] 在一些实施例中,这种结构节点框架可具有相关的收缩(或吸引)力,所述收缩力可操作为“收缩包裹”包含的节点,从而使(带有包含的元件的)结构节点的足迹降至最小。图12图解说明其中如图所示,框架的内部宽度(图中标记为“宽度”)可引起这种收缩力的例证实施例。更具体地,在这个例子中,如果宽度超过规定的最小宽度(标记为最小宽度),那么可以确定与所述宽度和最小宽度之差的反正切(atan)成比例的收缩力,并施加于框架边缘(在这种特定情况下,仅仅是左边缘和右边缘,如图所示)。
[0126] 如图12中所示的插入的力分布图图解所示,这种特定的力定律规定当所述宽度接近最小宽度时,力的大小趋于0,当所述宽度超过最小宽度较大的数量(如图所示,一直到极限)时,力的大小增大,而当所述宽度变得小于最小宽度时,转变成负力(从而变成排斥力/扩张力/分散力)。从而,如果所述宽度超过最小宽度,那么框架边界倾向于收缩,而如果所述宽度变得小于最小宽度,框架边界倾向于扩张(当然,两者都在界限之内,如在力分布图中所示,反正切函数是同样的情况)。
[0127] 在另一个实施例中,收缩力可以恒定,或者几乎恒定,这可避免嵌套结构,例如,结构节点内的结构节点的压碎。
[0128] 应注意上述力方案、定律、分布图、距离、边界和元件行为仅仅是例证性的,可以酌情任意组合地使用任意种类的力方案、定律、分布图、距离、边界和元件行为。
[0129] 另外注意,利用这种力的重大好处在于它们通常按照平滑并且优美的方式一起起作用。例如,两个或者更多的力以及对应的效果可同时起作用,可能彼此存在矛盾。在这种情况下,可以按元件(在适当的约束条件内,例如,特定元件的受约束移动、力方向等),计算和相加所有力,合力从而可相应地移动元件。从而,例如,在归因于其宽度超过最小宽度,结构节点的框架边界具有收缩力,但是包含其内部节点排斥力防止它们聚集在最小宽度之内的节点的情况下,以及在其中框架和节点相互排斥的情况下,可以达到平衡,结果产生指定行为之间的妥协。
[0130] 在一些实施例中,可随着时间的过去,施加力。换句话说,与其在单一步骤中简单地确定力并移动元件,所述方法倒不如利用动力学在元件之间达到平衡,即,向元件施加力,并移动元件,直到获得平衡条件并且移动停止为止。元件可被赋予质量,以调整或控制施加的力。此外,为了避免就基于复杂力的系统来说常见的振荡,可以采用阻尼,例如,缓慢地把系统的动能(它可被认为是“温度”)降低到0的摩擦类效果。在一些实施例中,可以调整所述阻尼,以优化称为临时阻尼的平衡收敛性。预期的例证动力学方程或关系包括:
[0131] Δv=Δt*force/mass   (1)
[0132] v=damping*(v+Δv)   (2)
[0133] position'=position+Δt*v   (3)
[0134] 其中v是速度,t是时间。不过,应注意可酌情使用任何其它动力学关系,因为这里公开的技术并不局限于物理上真实的动力学,例如,“真实的物理力”。相反,可以酌情定义和使用任何种类的力定律和关系。
[0135] 从而,在一些实施例中,编辑器可以创建和执行框图(图形程序或其它符号图)的动力学模型或仿真,从而仿真元件之间的物理相互作用。如下更详细所述,模型可借助多个基于物理学的参数,指定和实现图形程序或图形程序元件的基于物理学的属性和行为。模型可循环地连续运行,从而计算对于所有元件(例如节点和线接点)的力,更新速度和更新位置。在一个实施例中,节点的质量可以大于线接点的质量,以致接点将更快地移动,从而更快地调整。
[0136] 因而,一旦用户已编辑图,或者已开始编辑操作,当元件自动调整,例如,当施加力,从而元件被相应移动时,编辑器就可显示图的动画或“电影”。换句话说,把调整的编辑的图形程序显示在显示设备上可包括显示动画,所述动画图解说明图元件,可能包括图边界、形状等的移动(可包括调整大小、调整形状等)。在一个实施例中,电影的速率可以等于模型的更新周期,不过在其它实施例中,电影的帧速率可不同于模型的更新(或循环)速率。例如,模型可以比30帧/秒(fps)快得多地循环,不过,电影可具有等于或接近30fps的帧速率。在一个例证实施例中,电影帧速率可随元件的位置(或放置)的变化速率(例如元件的速度)而变化,例如,当元件快速移动时,帧速率可以更快,而当元件移动更缓慢时,帧速度可以较慢。
[0137] 注意,由于节点通常相互排斥,因此它们不会自发地经过彼此,结果是在多种不同的布置中,图可以是稳定的。此外,归因于集合系统的自动寻求平衡行为,用户可调整大体布局,物理学会尽其所能地“整理”图。类似地,用户可扩展或收缩框图中的项目(即,在单图标表示(例如,子程序代码)和项目的构成元件(例如子程序)的多图标表示之间,转换项目),从而可相应地自动调整各个元件。这种特征对小显示屏,例如, 平板计算机或者甚至智能电话机来说尤其有用。下面说明关于符号图的模型和动画之间的关系的其它实施例。
[0138] 在一种例证的使用情况下,当节点被拖入或拖出结构节点(框架或限界结构/元件)时,节点排斥边界或边框,不过由于边框具有惯性(归因于其质量),因此快速移动节点可使所述节点越过边框。一旦在另一侧,节点沿相反的方向排斥它,从而当节点越过边框时,节点产生少许反弹,这可具有美好的物理感觉(对用户来说)。在一些实施例中,一种或多种动力学效应,比如这种“反弹”可触发对应的音效,例如砰然声,这可增强用户的欢乐,从而增强用户的参与。
[0139] 另一种例证使用情况下,可以充分利用节点的这种“生动拖放”,以实现(节点之间的)布线。例如,用户可轻敲节点,以使端子更易于击中,抓住“插头”(例如,连接器),并把它拖到在另一个节点的端子。由于插头不过是另一个节点,把它拖入/拖出结构,以进行布线不需要在系统中设计额外的功能。可以利用相同的手势使插头脱离节点,并把它连接到别的东西,或者仅仅使它脱离,稍后再连接它。使插头在图中漂浮比“断裂的”线更可取。
[0140] 归因于多个元件之间的物理相互作用的复杂性,还会出现其它协同,从而进一步充分利用这里公开的技术改善和增强图形编辑体验。
[0141] 如上所述,在一些实施例中,在进行调整之前或之时,在图形程序中可以显示(一个或多个)力或其效果的指示。在一些实施例中,在编辑符号图时,可以显示这种指示。此外,在一些实施例中,可以显示上述技术的关键距离或辅助特征,例如,扩展的边界,最小宽度等。在一些实施例中,用户能够调用相关的力定律/分布图的显示,还能够编辑或配置这里说明的任意方面或属性。如上所述,这里公开的任意技术可类似地适用于其中按照特定方式把系统组件(例如硬件和/或软件组件)连接在一起的其它符号图,例如,系统图,物理图,结构图等。
[0142] 图13A和13B-例证实施例
[0143] 下面介绍其中编辑图6的例证框图(或者图形程序),并显示施加力的例证结果的上述技术的典型示例。更具体地,图13A和13B图解说明按 照一个实施例的图形程序元件的移动,和随后的程序元件的重排。
[0144] 如图所示,图13A图解说明指定把节点610移动到图或图形程序1301中的节点606和608之间的用户输入。注意在这种特殊情况下,所述移动是借助用户手势指定的,在所述用户手势中,用户用手指(用叠加在节点610上的虚线圆圈表示)轻敲或以其它方式选择节点610,然后把节点移动,例如拖动到新位置(用布置在节点606和608之间的第二个虚线圆圈表示)。不过,可以酌情使用任何编辑指定技术,包括借助指示设备,比如鼠标或触控板,借助菜单,按键命令等。
[0145] 图13B图解说明在对图13A的图或图形程序1301施加力之后的图形程序1302,其中可以看出,节点606和608已被自动移动,以便为节点610让路,线601已被相应延长和移动,并且节点602和604被朝着修改后的图的中央重新定位。如上所述,在一些实施例中,所述方法可呈现图解说明从图13A的图到图13B的图的转变的动画或电影。
[0146] 如下更详细所述,在一些实施例中,调整的符号图(例如,程序)的编辑、调整和显示可以是独立的不连续事件或处理,这种情况下,例如,用户可把元件移动到新的位置,之后,可计算并向图中的其它元件施加力(但是用户看不见),随后显示作为结果的调整后的图,以致不向用户呈现图的中间状态。
[0147] 相反,在其它实施例中,可以例如按照交错的方式,同时进行编辑、调整和显示调整的已编辑图形程序的至少一部分,这种情况下,接着上面的移动例子,当用户开始移动元件时,(根据迄今为止的位置的变化)计算并向其它元件施加对应的力,并向用户显示作为结果的逐渐调整的图。当移动(或者更一般地,编辑操作)继续时,继续更新和施加力,并显示调整的图的相继状态。然而,注意在一些实施例中,编辑可以是简单的不连续事件,例如,如果用户只是用一个动作删除元件,因此当结果力变化时,编辑操作可能已结束,但是当图或模型接近平衡时,可动态地(例如平滑地)展现调整的图的合力的施加、调整和显示,从而动画表现图到平衡状态的演化。
[0148] 在一些实施例中,在图形程序节点或其它元件上调用的、从图形程序节点或其它元件调用的、或者与图形程序节点或其它元件相关的一个或多个辅助特征、组件或元件可被视为(可能临时的)编辑操作,从而,可发起或调用力的对应施加。例如,节点的用户选择可调用一个或多个可选择元件的显示,所述一个或多个可选择元件可操作为配置、操作、访问节点的性质,删除节点,或者以其它方式修改节点。在一些实施例中,这样的元件可被称为“可操作暗示”(affordance),不过可酌情使用任何其它名称。在一个实施例中,节点的选择可调用节点的放大,以便利用户与所述节点的进一步交互作用,例如,显示一个或更多的可操作暗示。如这里所述,这种可操作暗示和放大可导致借助力的施加的图形程序的自动重排。类似地,在一些实施例中,当节点被取消选择时,关于可操作暗示的操作完成,或者当达到某种其它适当的状态时,可操作暗示可被隐藏或消除,节点可被压缩或收缩,响应于此,借助力的施加,图形程序可再次被重排。
[0149] 图14A-14C按照一个实施例,图解说明与图6的图形程序600类似的图形程序1401的例证实施例,具体地,图解说明图形程序元件的放大,包括可操作暗示和端子的显示,元件与另一个元件的连接,和程序元件的后续重排,包括图形程序元件的压缩。
[0150] 在这种例证情况下,例如借助单一轻敲选择了绝对值节点610,作为响应,该节点被放大,并显示“删除”可操作暗示1410,所述删除可操作暗示可由用户选择,以从图形程序中删除该节点。另外如图所示,节点610的选择还调用在节点的落附近的相应节点端子的显示,其中在节点左侧的端子是输入端子,在右侧的端子是输出端子。注意,节点已被放大,从而使用户与节点的交互更容易。
[0151] 因而,图14B图解说明节点610的输出端子和节点608之间的线的用户指定(同样借助手势),其中用户选择了输出端子,并借助手势把所述端子移动或拖动到节点608附近,如用虚线圆圈指示。从而,用户指定了其中把节点610连接到节点608的编辑操作。
[0152] 图14C图解说明在响应图14B的编辑操作施加了力,结果产生(编辑的)图形程序1403之后的图14A和图14B的图形程序。注意,一旦进行和实现了编辑操作,节点610就被缩小回到其正常大小(压缩),各个辅助元件,例如,可操作暗示从显示画面中被除去,具体地,删除可操作暗示和端子从显示画面中被除去。此外,力的施加导致节点610被自动定位,以使连接它和节点608的线笔直,这样更简朴,并且从审美上说可能更加合意。
[0153] 注意,其它可操作暗示可不同地起作用。例如,响应在节点上的单一轻敲(这也可调用节点的放大),可显示便利节点的配置的例证可操作暗示。可操作暗示可以是显示在相关节点上或附近的符号、图标或标签,可指示所述可操作暗示的含义或性质。在可操作暗示上的单一轻敲可调用对话框、菜单、调色板等的显示,借助于此,用户可配置节点。在一些实施例中,这种元件,例如对话框、菜单、调色板等的显示不干扰图形程序(尽管如上所述,可操作暗示的显示会干扰图形程序)。换句话说,尽管一些元件的引入和显示会扰乱程序的几何学,从而导致程序元件的力居间促成的重排,不过,其它元件的增加和显示不会扰乱程序的几何学;相反,这些非干扰性元件的显示可被叠加在相关节点(或其它元件)之上或附近,而不会引起模型力的不平衡或扰动。
[0154] 在一些实施例中,一个或多个上述效果或元件是时间限制的。例如,当调用可操作暗示的显示、放大等时,可以启动定时器,当规定的时间到期时,所述效果,例如可操作暗示、放大等可被除去、停用等。然而,在一些实施例中,用户与节点或相关效果(例如,可操作暗示)的相互作用可重置定时器。
[0155] 可以提供图形用户界面(GUI),借此可指定与图元件和/或图相关的物理(即,基于物理学的)参数和/或约束条件。可配置参数的例子包括(但不限于)质量、粘度、摩擦、最大速度、最大(和/或最小)排斥或吸引力,模型时间步长或更新频率,和动画时间步长/帧速率(绘图速率),等等。在各个实施例中,可在元件层面调用GUI(例如,借助与元件、弹出菜单等相关的可操作暗示调用),在图或程序(例如全局)层面,调用GUI,或者甚至在开发环境层面,调用GUI,例如可对开发中的任何图或程序指定默认值。可以酌情使用任意种类的GUI,其中GUI可包括用于操作和 /或查看参数值的一个或多个控件和/或指示器。从而,所述方法还包括显示包括一个或多个控件或指示器的图形用户界面(GUI)。可以接收指定或修改一个或多个基于物理学的参数中的至少一个参数,和/或模型或模型行为的至少一个定性方面的用户输入。随后可按照指定或修改的至少一个参数或至少一个定性方面,进行(或恢复或继续)模型的执行。注意在一些实施例中,模型可被暂停,以便进行这样的参数修改,而在其它实施例中,可在模型的执行期间,动态地进行显示GUI,和接收指定或修改所述至少一个参数或至少一个定性方面的用户输入。
[0156] 在一个例证实施例中,GUI可呈现用于指定模型的一个或多个参数和/或行为的定性控件。例如,GUI可呈现“滑动块”控件,借此用户可指定在用户可感知属性的规定范围中的值或水平,例如“较慢/较快”控件,以确定各个元件可多快速地达到平衡。从而,用户可控制定性属性,而不必了解或者甚至知道与产生所述定性属性有关的一个或多个定量值。继续该“较慢/较快”例子,在一个实施例中,指定程序模型的“速度”的水平又会自动指定多个物理参数,例如最大速度或加速度、质量等的相应水平。在一些实施例中,用户可视情况调用这些暗指的参数值的显示,因此可更容易地理解这样的定性控件的底层机制和结果。按照这种方式,用户可有结果地管理或指定模型的平衡收敛,而不必了解收敛到平衡的过程的更详细或微妙之处,不过可随着不断的使用而掌握这些微妙之处的性质,从而随着时间的过去,变得更加富有经验,例如,指定除了这种定性属性之外的,或者代替这种定性属性的各个参数值。
[0157] 其它实施例
[0158] 下面进一步说明这里说明的技术的其它例证实施例。更具体地,关于符号图(例如,图形程序)的模型中的力的施加,和从产生编辑时的初始状态到由因所述编辑引起的力的施加产生的最终(平衡)状态的转变的动画的性质和它们之间的关系,说明另外的实施例。不过应注意,说明的各个实施例仅仅是例证性的,并不意图把实施例局限于任何一组特定的特征。
[0159] 在一个实施例中,与符号图相关的力总是有效的。例如,所述方法 可进行图的仿真,只要符号图被显示在编辑器中。注意,由于当达到平衡时,即,当达到其中所有力都处于平衡状态时,图元件的移动会停止,因此在新的编辑操作发生或者被调用之前,用户不知道图形程序的模型正在执行中。从而,在一些实施例中,所述方法还包括在接收用户输入之前,和在获得平衡条件之后,迭代地,即大体连续地重复所述确定、相加和移动。因而,显示符号图和显示调整的已编辑图形程序可包含在显示符号图的进行中的动画之中,其中不进行或图解任何移动,除非例如响应编辑操作,发生符号图几何学的某种扰动,或者除非图未处于平衡条件或状态,尽管模型可继续执行,相加各个力,等等。换句话说,显示动画可包括符号图的显示(502),图解移动(当施加力时),和显示调整的编辑的符号图(508),例如,可在例如编辑窗口中显示动画,图解说明各个元件到平衡状态的移动,在平衡状态下,力达到平衡,并且移动停止。
[0160] 如上所述,在一些实施例中,可以同时地,或者交错地进行至少一部分的编辑、调整和显示调整的已编辑图形程序。例如,在其中用户输入把节点从第一位置移动到第二位置的例证情况下,一旦节点开始移动,就可迭代地确定作为结果的净力,还可相应地开始调整,例如,其它节点可响应所述节点的移动而开始移动,也可相应地被显示,等等。当节点到达第二位置时,可以继续所述力确定、调整和显示,从而使图元件可以达到平衡。如在别处所述,在一些实施例中,即使在达到平衡之后,也可继续进行已调整图的力确定和显示,不过由于力已平衡(归因于获得平衡),因此不会发生任何调整,从而不会发生显示的任何变化,从而仍在进行物理学仿真可能对用户来说并不明显。
[0161] 在其它实施例中,编辑、调整和显示可以是不连续的事件或操作。例如,用户可编辑符号图,例如,把节点移动到新位置,之后,可在“后台”计算和施加力,一旦达到平衡,就可显示调整后的图。从而,从用户的观点来看,即使底层或相关的模型演化平滑,显示的图也可能演化不平滑,即,显示的图会从编辑的图形图像“跳”到其中图元件的所有运动都已停止的最终的已调整图形图像。
[0162] 另一方面,在一些实施例中,模型可响应编辑操作(例如,图布局或几何学的扰动)而开始执行,当达到平衡时,可停止或暂停模型的执行,例如,建模方面会进入“休眠”模式,可被下一次编辑/扰动唤醒。注意,“达到平衡”意味接近在理想平衡状态的规定容差或“ε”(epsilon)之内的状态。例如,通常,当元件接近其平衡状态(位置)时,力,从而作为结果的速度渐近地趋于0,并且取决于数据的分辨率(例如,32位,64位等),实际停止下来(停止移动)可能需要相当长的时间,或者会在平衡值周围不确定地“摆动”。从而,在一个实施例中,当某个值或指标达到某个规定阈值时,例如,当模型中的最大当前移动、速度或加速度小于或等于规定阈值时,所述方法可停止施加力(从而停止移动元件)。注意在一些实施例中,可通过把所有力设定为0,停止力的施加。
[0163] 如上所述,在一些实施例中,图形程序或图可在多种不同的布置中是稳定的。从而,响应改变符号图的几何学(包括各个元件的变化)的编辑(或者其它扰动),所述方法可执行(或继续执行)模型,以找出最近的平衡状态(就当前状态来说)。如上详细所述,这种编辑或扰动的例子可包括诸如增加、删除、连接或移动符号图元件(例如,图标、节点、框架、结构、边界、线、边缘等)之类的操作。这种操作的其它例子包括(但不限于)选择、放大、压缩或收缩、展开、折叠或调整符号图中的元件的大小,在符号图中显示元件的可操作暗示,或者在符号图中显示元件的端子,等等。注意,展开和折叠分别是关于在图中,用图标的组成元件替换图标(展开),和用代表性图标替换多个元件(例如程序或子程序,或者更一般地,图或子图)(折叠)的动作或操作。这与放大和压缩/收缩相反,在放大和压缩/收缩中,元件,例如,图形程序节点(在图中)被原地放大,以便于用户与元件的交互作用,可包括(临时)增大元件的大小,和显示另外的特征,比如端子和可操作暗示(放大),和使放大的元件恢复其原始大小/外观(压缩/收缩)。注意在各个实施例中,所述一个或多个元件可包括下述中的一个或多个:至少一个图形程序节点,连接到图形程序节点的至少一条线,或者图形程序中的至少一个端子,例如程序节点的端子,或者例如面板的GUI或GUI元件。更一般地,所述一个或多个元件可包括下 述中的一个或多个:至少一个符号图节点,连接到符号图节点的至少一条线,或者符号图中的至少一个端子,例如,图节点的端子,或者面板的GUI或GUI元件。
[0164] 如上所述,在一些实施例中,模型/仿真的“帧速率”(即,循环频率或更新速率)可不同于动画或电影的帧速率,例如,“绘图速率”。更一般地,在一些实施例中,在仿真速率和动画帧速率之间,存在非线性关系。另外,在一些实施例中,模型中采用的一个或多个物理参数是时间或上下文相关的。例如,在模型的执行期间,至少一个物理参数可被动态修改,以实现某种期望的效果,例如,使源于编辑的动画和/或反馈对用户来说更合意或印象深刻。换句话说,某些动作或移动可能对用户来说更加合意或者可以理解,可动态地修改一个或多个物理参数,以实现这些动作或移动。
[0165] 例如,当元件接近平衡位置或者零速度时,可以动态修改,例如增大针对给定元件(或多个元件)的粘度(运动阻力),摩擦或者其它阻尼参数,以更快地使该元件停止在其最终状态,和避免在平衡状态周围的振荡。再例如,摩擦(或粘度)可以是速度,或者速度的平方的函数,从而可以限制加速度。在另一个例子中,可以定义符号图或模型的“温度”,所述温度指示,并且可能限制组成元件的运动的总能量,并且可被处理,以影响,例如使平衡收敛时间减小或标准化。注意,上面的例子仅仅是例证性的,在各个实施例中,模型的任意物理学参数可酌情取决于时间、上下文或者模型或其元件的任何其它参数或方面,或者基于时间、上下文或者模型或其元件的任何其它参数或方面被动态处理。
[0166] 在一些实施例中,符号图或符号图元件的一个或多个基于物理学的参数,例如,速度、最大速度、加速度、最大加速度等可具有相应的分布图,所述分布图指定所述参数的随着时间(例如随着收敛过程的持续时间)而变化,或者相对于某个其它属性或参数的值。所述方法从而可包括把相应的分布图应用于符号图或符号图元件的一个或多个基于物理学的参数,其中每个分布图指定相应参数的一系列值。在一些实施例中,这种分布图可被标准化,可根据需要缩放,以便应用于各个元件,从而 影响达到平衡的轨迹。从而,例如,相同的速度分布图可被不同地缩放,例如,在时间方面,以便应用于不同的元件。
[0167] 所述方法可“自动调整”模型,以改善用户的编辑体验。例如,模型可被自动调整,以实现收敛过程的临界阻尼或时间归一化。临界阻尼指的是其中系统无振荡地最快达到平衡的结构。时间归一化指的是对过程,例如平衡收敛过程的规定持续时间的强制要求。例如,用户(或默认设定)可把持续时间规定为例如2秒,因此可按照近似在该时间之前,例如,在一定的规定容限内,发生平衡收敛的方式,管理或操纵收敛过程。这可利用多种不同的方式来实现。
[0168] 在一些实施例中,自动调整可包括计算或估计表示或指示按最佳或期望的方式,例如就简明性、清晰性、紧凑性等而论,布置符号图所达到的程度的指标(metric)或品质因数(figure of merit)。这样的布置可被视为目标状态,可等同于或对应于模型的平衡状态。从而,所述方法可确定或估计与目标状态对应的品质因数(或指标)的值,通过比较图或模型的当前值,可以确定到图或模型的平衡状态的“距离”的(可能粗略的)估计值。随后,所述方法可自动调整模型的各个物理学参数,以控制或优化平衡收敛。在一些实施例中,可为模型定义状态空间,可在状态空间中,或者相对于状态空间,确定品质因数、平衡点/目标状态、和距离。此外,在一些实施例中,可依据经验确定平衡值,和到所述平衡值的距离。例如,可在例如服务器,从许多用户收集关于许多图、编辑、收敛历史和/或平衡点,并且可能还有用户对动画的反馈的数据,并且可用于提出关于品质因数/指标,平衡点和到平衡点的距离,收敛时间和参数分布图,以及这里公开的技术的其它方面的试探法。例如,可以(自动或人工)分析所述数据,以确定一组“原子”或基本情形或图结构,以及(参数、时间、距离等的)对应值,它们可用于估计这些情形或结构的各种组合的值。在一个实施例中,图可被分析和分解成其基本组成情形或结构,所述基本组成情形或结构随后可用于大体确定图的所述值。
[0169] 在其中计算资源是这样的计算资源,以致响应扰动(例如,编辑操作),模型快于实时地运行的实施例中,所述方法可确定或取回与平衡或目标 状态对应的品质因数的值,或者可以确定平衡或目标状态本身。例如,所述方法可在例如后台执行模型,以收敛到平衡或目标状态,以致对用户来说,模型运行是看不见的。所述方法可记录或以其它方式保存模型/图的一些或全部中间状态(例如,位置、速度、力、大小,和符号图的任何其它相关属性或参数,包括符号图或图元件的那些属性或参数),随后通过对一系列状态采样,并按照采样的一系列状态绘制符号图,可产生图解说明收敛到平衡的动画。更具体地,例如,在其中比实时更快地进行符号图的模型的执行的一些实施例中,所述方法可包括在模型的执行期间保存一系列的模型状态,显示符号图的动画包括对一系列的模型状态采样,从而产生一系列的采样状态,和显示与所述一系列的采样状态对应的符号图的一系列图像。
[0170] 换句话说,所述方法可按照采样状态,有选择地用动画表示收敛过程。注意,采样和/或动画制作可能相对于实际的一系列模型状态来说不是线性的。例如,在其中元件移动较大距离的例证情况下,大部分的移动可能并不令用户感兴趣,从而,所述方法可提取(例如,采样)和动画表示或图解说明稀疏的一组状态,所述稀疏的一组状态覆盖模型演化的所述不太令人感兴趣的部分,但是可提取和动画表示更密集的一组状态,所述更密集的一组状态覆盖更令人感兴趣的到平衡状态的最终演化。从而,在本例证实施例中,向用户显示的动画可快速越过稀疏的一组状态,随后(相对)慢动作地表示到平衡状态的最终趋近。更一般地,所述方法可采样模型的状态序列,可把状态样本(可能非线性地)映射到所需持续时间的动画。注意,这种技术非线性地操纵或“卷绕”模型时间,以实现合意或者更动人的动画序列。在一些实施例中,一系列的样本状态(或者动画帧)可被插值,以使动画平滑。
[0171] 在备选实施例中,可相对于时间非线性地保存一系列的模型状态本身。例如,根据一个或多个指定的属性,例如,速度、移动、温度或熵,或者任何其它属性或参数,可以保存反映或对应于图到平衡状态的演化的令人感兴趣或者重要的各个方面的关键模型状态,并用于产生动画,这种情况下,所述方法在对应于关键模型状态的关键动画帧之间进行插 值。在另一个实施例中,保存的一系列模型状态(或采样子集)可被非线性地映射到动画帧,这种情况下,与不太令人感兴趣或者重要的部分相比,以更高的时间分辨率(例如,帧/秒),动画表示或图解说明模型演化的更令人感兴趣或重要的部分。
[0172] 注意,借助参数分布图,或者上面提及的其它动态参数调整,可以实现类似的效果。例如,为了获得规定的动画持续时间(例如,2秒),所述方法可确定、监控或跟踪到平衡状态的距离,然后可在收敛过程中,动态修改物理参数,以在规定的最终期限或其附近,达到平衡。另一方面,可以根据到平衡状态的距离、动画的期望持续时间等,确定或选择一个或多个参数分布图,然后相应地构成(可能动态地)和执行模型。在一些实施例中,可以使用这些技术的某种组合。从而,例如,所述方法可对模型的状态序列采样,可按照一个或多个加速度或速度分布图(或者期望的其它参数或属性的分布图),把状态样本映射到期望持续时间的动画。
[0173] 注意,上面的技术并不局限于图形程序编辑,相反可广泛适用于遭受对其几何学的扰动,并且要求图的(用户感知的)清晰性的任意种类的图。从而,例如,上述技术可适用于其中如上所述,按特定方式把系统组件(例如硬件和/或软件组件)连接在一起的系统图、物理图、结构图等。
[0174] 图15图解说明表示分布式硬件系统的结构图的一个实施例。可以看出,这种特定的例证系统包括通过作为设备间连接手段的例证性例子的各种通信总线,包括以太网(因特网)、GPIB、无线(例如,以太网、蓝牙)、PCI、串行I/O、USB和1394耦接的多个设备,不过可以酌情使用任何其它设备、总线和协议。注意,该例证图还包括包括标记为“Jelly Beans”的软件图标。在一些实施例中,软件图标可被显示成连接到或者在硬件设备图标附近,以指示对应软件被部署到或者保存在对应的硬件设备上。
[0175] 上面关于图形程序公开的任何技术可类似地适用于这样的图和一般的符号图。更一般地,对于期望的任何符号图,可任意组合地使用这里公开的任意技术。
[0176] 尽管上面相当详细地说明了实施例,不过一旦充分理解上面的公开 内容,对本领域的技术人员来说,众多变化和修改将变得明显。下面的权利要求应被解释成包含所有这样的变化和修改。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈