生成三维圆盘形式的树形数据显示的方法及相关设备的制作方法

文档序号:6609480阅读:196来源:国知局

专利名称::生成三维圆盘形式的树形数据显示的方法及相关设备的制作方法
技术领域
:本发明涉及树形数据的显示,尤其涉及生成三维圆盘形式的树形数据显示的方法及相关设备。
背景技术
:以三维圆盘形式显示数据源于日常生活中具有可旋转圆盘的桌子带来的灵感。通过旋转如图1示出的这种桌子上的圆盘,桌子上摆放的各式菜肴将逐一呈现在用餐者的面前。与此类似,三维圓盘形式的数据显示将多个数据节点(如文件、文件夹等)呈现在一个三维的圆盘上,用户通过转动这个圆盘可以逐一地选择自己感兴趣的节点,即焦点。这样的人机界面不仅可以支持直接的、吸引人的以及富有美感的设计,使得这一显示方式更易于为用户所理解,而且由于利用了三维立体的视觉感受,使得处于前方位置处的焦点比后方位置处的其他节点更大、更醒目,从而更能引起用户的关注,并且这种动画般的转动也因为增加了与用户之间的交互而为用户提供了更有趣的使用感受。当今,在计算机应用领域,将这种三维圆盘形式的数据显示及其变型应用于树形数据结构的显示已经相当普遍。例如,由ShuoWang等人发表在CHI2005|LateBreakingResults:ShortPapers,第2017-2020页上题为"DesigningaGeneralized3DCarouselView"的论文中就公开了一种圓盘形式的数据显示方法。在该方法中,各个文件围绕圆盘的边沿显示为各个图标。当用户拖动圆盘、找到焦点文件并点击该文件对应的图标时,圆盘就会平稳地旋转到用户所需的目标,即找到焦点。由此,用户可以轻而易举地进行文件的选择。图2示出利用上述数据显示方法获得的圆盘显示模型,其中,"终结标记,,为旋转时确定一个标记点,方便用户知道是否已经将圓盘旋转了一整圏,即标记出从此节点(图标)以后已经由用户查找过了。"折叠区域"中放置无法完全显示的其它图标,其中的数字36表示"折叠区域"中放置了36个文件的图标。从图2可以清楚地看到上述论文中描述的这一"焦点+上下文"方法形成的圆盘。其中,前方的图标大于后方的图标,这是将三维视觉感受应用到圆盘显示所产生的必然结果。上述论文中的显示方法以及三维圓盘显示的许多其它应用——如计算机游戏、媒体管理器等都已经证明,三维圆盘显示尤其适于呈现图标、图片或者可以由图像代表的任何其它项,而不适于可视化地显示具有长文本串的项目列表。三维圆盘显示方法还为多种众所周知的可视化显示方法所使用,如RobertsonGG、MackinlayJD和CardSK.在其i仑文"ConeTrees:Animated3DVisualizationsofHierarchicalInformation",InProceedingsoftheACMHumanFactorsinComputingSystems(CHI'91),1991中描述的三维层次结构的布局方法及相应的交互方式。从中可以看出,对于有限的显示界面一一如显示器的显示屏大小,当节点较多时,锥形树的各个节点会产生较为严重的重叠,从而无法高效地展示数据信息。因此,锥形树的显示方法并不适用于大数据集的情况。EP0,435,601Bl也公开了一种以节点及连接线的方式在三维空间中展现层次结构的可视化显示方法。在该方法中,将所有节点一次性地全部布局在三维空间中。与上面的锥形树显示方法类似,该节点-连接线显示方法在节点较多的情况下,各个节点也会产生较为严重的重叠。此外,上述两种显示方法在接收到用户选取一个感兴趣的节点的指令后,被选中的节点将会以旋转的方式变成当前的焦点,同时保留所有先前显示的树形结构中的各个分支。这样,即使先前显示的树形结构中的有些分支与当前选中的焦点没有什么联系也将予以保留,当这种分支数目较多、涉及节点较多时,焦点反而会被挤在一边显示,从而大大降低了显示界面的利用率。EP0,694,878A2也7>开了一种在平面上对树形结构进行增量布局的方法。在该方法中,树形结构中各层次的节点被静态地布局在平面之上,视图的焦点无法改变,从而无法突出显示焦点,造成用户在繁杂的整体布局中难以了解关于该焦点的上下文。这一方法也存在如上所述的节点重叠、显示界面利用率低的问题。因此,尽管越来越多的如上应用采用了三维圓盘用户界面,却没有一种应用能够有效地处理大数据量的分层结构数据的显示,也没有对三维分层结构的可视化的交互机制提出任何优化方案,从而迫切需要一种显示方法和设备能够更突出地显示树形分层数据中用户感兴趣的焦点,同时更有效地利用显示的界面。
发明内容本发明的目的就是要提供一种能够克服上述树形数据显示方法存在的缺陷的显示方法及实现该方法的设备。根据本发明实施方式的生成三维圆盘形式树形数据显示的方法,包括如下步骤接收用户对圆盘中节点的选择;根据用户选中的节点对应的子圆盘的半径以及该选中节点所在圆盘的半径,判断是否可在该选中节点所在圆盘内展开子圆盘;以及当经判断可在该选中节点所在圆盘内展开子圆盘时,在该选中节点所在圆盘内展开子圆盘。根据本发明的另一方面,提供了一种生成三维圆盘形式树形数据显示的方法,树形数据以多级三维圆盘形式显示,该方法包括如下步骤设置可视级总数,可视级总数为显示多级三维圆盘的区域中最多显示的圆盘级数;接收用户对圆盘中节点的选择;只保留节点所在的圆盘及其下级圆盘,并关闭其他圆盘;以及展开用户选中的节点对应的子圆盘,并以展开该子圆盘的圆盘作为最上一级圆盘,显示圓盘级数不超出可视级总数的各圆盘级。利用上述方法获得的三维圆盘形式的树形数据显示可以更加高效地利用显示区域,突出用户选中的节点的上下文,使得三维圆盘形式的树形数据显示更加清楚。为了实现本发明的上述方法,本发明提供了生成三维圆盘形式树形数据显示的设备,用于以多级三维圓盘形式显示树形数据,包括接收装置,用于接收用户对圆盘中节点的选择;判断装置,用于根据用户选中的节点对应的子圆盘的半径以及该选中节点所在圆盘的半径,判断是否可在该选中节点所在圆盘内展开子圆盘;以及平级展开装置,当经判断可在该选中节点所在圓盘内展开子圓盘时,在该选中节点所在圆盘内展开子圆盘。根据本发明的另一方面,提供了一种生成三维圆盘形式树形数据显示的设备,用于以多级三维圆盘形式显示树形数据,包括可视级总数设置装置,可视级总数为显示多级三维圆盘的区域中最多显示的圆盘级数;接收装置,用于接收用户对圆盘中节点的选择;当前级变更装置,用于只保留节点所在的圆盘及其下级圓盘,并关闭其他圆盘;以及展开装置,用于展开用户选中的节点对应的子圆盘,并以展开该子圆盘的圓盘作为最上一级圆盘,显示圆盘级数不超出可视级总数的各圆盘级。根据本发明的再一个方面,还提供了一种计算机程序产品,包括用于执行根据本发明的上述方法的步骤的程序指令。根据本发明的方法和设备,由于可以随时根据需要设置可视级总数,从而能够动态调整显示设备上所显示的圆盘级数,令焦点的显示更加突出,并使得树形数据显示的各个层级中节点的关系更加清楚。尤其在树形数据量大时,可以通过减少可视级总数,有效避免现有技术中树形数据显示中节点的重叠,由此克服了现有技术中存在的问题。结合附图,本发明的前述方面和附带优点将变得更为明显。在附图中图1示出日常生活中具有可旋转圆盘的桌子的例子;图2示出利用现有技术的数据显示方法获得的三维圓盘显示模型的一个例子;图3示出根据本发明实施方式的生成树形数据显示的方法的流程图4a-图4d示出图3所示方法的流程中生成树形数据的多级圆盘显示模型的一个例子;图5a-图5b示出图3所示方法的流程中显示了多级圆盘的情况下,用户选择了非当前级的节点时的处理的示意图6示出图3所示方法的流程中进行是否可在该当前级中展开选中节点对应的子圓盘的判断的详细流程;图7示出图3所示方法的流程中在当前级的上一级生成选中节点对应的子圆盘的详细流程;图8示出根据本发明实施方式的计算各级圆盘间的距离和每级圆盘的半径的式子中各个参数间关系的示意图9示出图3所示方法的流程中在当前级圆盘中展开子圆盘的详细流禾呈;图IO示出图9的流程中最小展开角Y计算的示意图lla-llb示出了在已展开的子圆盘数目大于或等于该级最多支持展开的子圆盘数目时进行操作的示意图12示出根据本发明实施方式的生成树形数据显示的设备的结构框图13示出图12的生成树形数据显示的设备中当前级展开判断装置的内部结构框图14示出图12的生成树形数据显示的设备中上级展开装置的内部结构框图15示出图12的生成树形数据显示的设备中平级展开装置的内部结构框图;以及图16示意性地表示了其中可以实现本发明方法的计算机系统。具体实施方式下面结合附图对本发明的实施方式进行详细说明。根据本发明实施方式的生成树形数据显示的方法在现有技术中的圆盘数据显示的基础上,对树形数据的显示进行了改进。该方法的流程图如图3所示。在图3所示流程开始后,在步骤302中,获取待显示的树形数据。该树形数据可以由能够实现根据本发明实施方式的方法的设备本身生成或者接收自其它设备,例如通过直接连接或者通过通信网络的传输从其它设备获得。之后,图3所示流程将在步骤304根据显示设备的具体情况在显示区域中建立三维坐标系并设置显示区域中的可视级总数X。这里的三维坐标系用于以三维视觉形式清楚显示容纳各级节点的圆盘,而可视级总数X则表示在显示区域中最多支持同时显示的圆盘级的总数目。用户可以根据显示设备的条件(如分辨率等)结合自己的需要建立适合的三维坐标系和可视级总数。应当理解,现有技术中的各种建立三维坐标系的方法都可以使用,并且各种三维坐标系(包括坐标系的不同方向设置)都可以使用,只要能够以三维视觉形式清楚显示容纳各级节点的圆盘即可。用户也可以基于各种考虑设置可视级总数X。例如,有的用户可能更加关注作为焦点的节点,这样,他可以将可视级总数X设置得较小,比如等于3或者甚至等于1;而有的用户可能希望在关注焦点的同时兼顾该焦点的上下文,这样,他可以将可视级总数X设置得较大,比如等于5,只要不超出树形数据的总层级V即可。本实施方式中,以迪卡尔三维坐标系x-y-z和可视级总数为3级,即X=3为例进行说明。在这里,将树形数据属于同一父节点的所有子节点显示在x-y平面中的同一个圆盘上,多级圆盘沿z轴逐级展开。本领域的技术人员容易想到,也可以在三维坐标系的任意一个平面(如y-z平面)中展开圆盘,而沿与该平面垂直的另一坐标轴方向逐级展开多级圓盘。坐标系的选择和可视级总数的不同不构成对本发明的限制。以上述建立的三维坐标系为基础,根据所获取的树形数据,在图3所述流程的步骤306中生成根级圆盘,并将该根级圆盘设置为当前级。在本实施方式中,以x-y平面的原点作为根级圆盘的圆心,采用如下公式计算根级圆盘的半径r:rdlniV+B(1)其中,^和S是根据显示设备的具体情况(如分辨率等)确定的圆盘显示的参数;W为根级圆盘的节点数目,即树形数据中根的子节点个数。例如,在本实施方式,以显示设备分辨率为1024x768,N为100为例,则A可依下式确定为1024x0.3/ln(100)=66.72,B可依下式确定为1024x0.7=716.80,则圆盘半径716.8+66.71=783.51。在该实施方式中,确定占用85%的显示区域的宽度足以留出足够的边距。本领域的技术人员应当理解,上述公式(1)只是计算根级圆盘的半径r的一种方法。本发明的实施方式可以利用现有技术中任何一种方法生成圆盘。所显示的根级圆盘作为显示初始级。显示初始级即显示区域中显示在最底部的圆盘所在的级,其编号表示为/o,根级圓盘对应的值为1,则此时/o-l。同时才艮级圓盘也作为当前级,则当前级编号/此时的值为1,即/=1。之后,图3所述流程在步骤308中,接收用户对节点的选择。优选地,将用户选中的节点旋转至圆盘中央直接面对用户,并可将其突出显示,如高亮显示或者变换为不同的形状或颜色。用户可以采用各种用户输入设备完成上述选择操作,如通过鼠标点击根级圆盘上的某一节点,或者用手指在触摸屏上点击某一节点所在的位置。应当理解,用户如何选择节点不构成对本发明的限制。根据该选择,在步骤310中,判断用户选中的节点是否为当前级中的节点。由于此时当前级就只有展开的根级圆盘,用户只能在根级圆盘即当前级中进行节点的选择,因此,步骤310判断的结果为"是",图3所示流程进入步骤312。在步骤312中,进一步判断选中的节点对应的子圆盘是否可在当前级圆盘内展开。有关步骤312的详细描述将在后面结合图6进行说明。当经步骤312判断,不可在当前级圆盘内展开选中节点的子圆盘时,图3所示流程进入步骤314。在步骤314,在当前级的上一级生成选中节点对应的子圓盘,并将该子圆盘设置为当前级。有关步骤314的详细描述将在后面结合图7进行说明。步骤314之后,图3所示流程返回步骤308。另一方面,当经步骤312判断,可在当前级圆盘内展开选中节点的子圆盘时,图3所示流程进入步骤316。在步骤316,在当前级圆盘内生成选中节点对应的子圆盘。有关步骤316的详细描述将在后面结合图9进行说明。步骤316之后,图3所示流程返回步骤308。当在步骤314生成上一级子圆盘后,此时在步骤308可能接收到用户对根级或者其上级子圆盘中节点的选择。当用户选择的节点并非当前级圆盘内的节点时,在本实施方式中,即此时选择的并非展开的子圆盘内的节点,而是根级圓盘内的节点时,图3所示流程将在步骤310中判断为"否,,,图3所示流程进入步骤318。在步骤318,只保留选中节点所在圆盘及其下级圆盘——在本实施方式中仅为根级圆盘,而关闭其它圆盘。并在步骤320,将选中节点所在圆盘(此时为根级圓盘)设置为当前级。此时,选中节点作为焦点。之后,图3所示流程进入步骤312,并将依次执行步骤312之后的前述各个步骤。通过图3所示流程,可以平级展开或者逐级显示用户所选中节点对应的子圆盘,令焦点更加突出,并且使得有关该焦点的上下文更加清楚。为了清楚地说明图3所示方法,下面结合图4a-图4d进一步说明如何通过该方法生成树形数据的多级圓盘。对应于图3中的步骤302,获取例如图4a中示出的树形数据。从中可以看出,除根节点外,整个树形数据包括多个层级,其中根节点的子节点包括节点1、节点2、节点3等等。以节点1作为父节点,其子节点包括节点1.1和节点1.2等等。节点1.2又包括节点1.2.1、节点1.2.2以及节点1.2.3。经步骤304,如图4b所示在显示区域中建立三维坐标系x-y-z,并在步骤306中生成根级圆盘。当接收到用户对根级圆盘中节点的选择时,例如用户选择了节点1,经过图3所示步骤310和312的判断,在本实施方式中,在根级圆盘的上一级——即沿z轴的正向方向向上的一级一一展开节点1对应的子圆盘,节点1作为焦点被突出显示,如图4c所示。返回步骤308之后,下一个用户选择可以是节点1.2,经过图3所示步骤310和312的判断,展开对应于节点1.2的笫三级圆盘。对于用户对该第三级圆盘上节点1.2.1、节点1.2.2和节点1.2.3的选择,经过图3所示步骤310和312的判断,在第三级圆盘上平级展开节点1.2.1、节点1.2.2和节点1.2.3对应的子圓盘,如图4d所示。图4d中,在最上层显示的第三级是当前级,该级圆盘及平级展开的三个子圆盘构成焦点,当前级的下面两级圆盘,即第二级和根级圆盘构成与焦点有关的上下文,提供有关该焦点的层级关系等的信息。以上图4a-图4d均是在用户选择了当前级节点的情况下,子圆盘在上一级或当前级展开的情况。下面结合图5a-图5b说明在类似图4d所示多级圆盘显示的情况下,用户选择了非当前级的节点时如何处理。该操作对应于图3所示流程中步骤318和320的操作。如图5a中示出了三级圓盘显示的树形数据的一个例子。其中第三级作为当前级圆盘具有平级展开的两个子圓盘。当在图3的步骤308中接收到用户选择的是根级圆盘中的节点2时,由于该选中节点并非处于当前级,因此,在本发明的实施方式中,步骤310将判断为否,此时将按照图3的步骤318,只保留选中节点所在圆盘及其下级圆盘。对于图5a中示出的多级圆盘,就是只保留节点2所在的根级圓盘,并将其设置为新的当前级圆盘,而关闭原来的第二级和第三级(原始当前级)圆盘,包括关闭这些级圆盘内展开的子圆盘。之后,经过图3所示步骤312的判断,在根级圆盘的上一级展开对应于节点2的第二级圆盘,如图5b所示。不论当前级是原始的当前级还是经上述步骤320操作新设置的当前级,对于处于该当前级中的选中节点,图3所示流程将进入步骤312,进行是否可在该当前级中展开该选中节点对应的子圓盘的判断,下面将结合图6的流程图对该判断的具体操作进行描述。图6所示流程开始。在步骤602,计算选中节点n对应的子圆盘半径r:^"'lnA^+5'(2)其中,A,和B,是根据显示设备的具体情况(如分辨率等)确定的圓盘显示的参数;A^为选中节点n作为父节点包括的子节点的个数。本领域的技术人员应当理解,上述公式(2)只是计算选中节点对应子圓盘半径r的一种方法。本发明的实施方式可以利用现有技术中计算圆盘半径的任何一种方法。之后,在步骤604,确定平级生成子圆盘半径的阈值R,即在当前级圓盘平级展开子圆盘的最大半径值。可以预先设置该阈值,例如设置为当前级圆盘半径的1/4。可以根据用户的需要设置任何适当的阈值。在步骤606中,将上述获得的选中节点对应的子圓盘半径;和当前级生成子圓盘半径的阈值R相比较。并且在步骤608中,当经判断选中节点对应的子圆盘半径;小于或等于当前级生成子圆盘半径的阈值R时,图6所示流程进入图3中步骤316,否则进入图3中步骤314。对于图3中的另一步骤314的详细操作,下面结合图7进行描述。图7的流程开始后,在步骤702中,将当前级的上一级设置为新的当前级。此时,当前级编号/增加l。之后,在步骤704,判断当前级编号/是否大于可视级总数人。当经判断当前级编号/大于可视级总数X时,修改显示初始级的编号/G,使之等于/-人+1,从而令显示设备的显示区域中始终最多显示X级圆盘,由此保证本实施方式的生成树形数据显示的方法能够突出地显示焦点并且清楚地显示与焦点最相关的上下文。之后,在步骤708中,计算各级圆盘间的距离和每级圆盘的半径。在本实施方式中,利用如下公式实现该计算操作g,/tan(a)+^;一,/0</</0+;10/</0(3)其中,/表示待生成圆盘的级数,g,.表示每级圆盘之间的距离;为一个常量,用于控制&的增量步长;Z/^,表示显示区域的最大高度,决定了显示区域中最多显示的圆盘级的总高度;人表示在显示区域中最多显示的圆盘级的总数目;y表示显示区域中当前显示出的圓盘级总数目,其小于显示区域中最多显示的圆盘级的总数目X;。表示第/级圆盘的半径;/。表示显示区域中显示在最底部的圆盘所在的级;r一表示显示区域中上述最底部圆盘的半径;a的正切为两级圆盘间的距离与该两级圆盘间半径之差的比值。上述参数可由用户根据实际需要指定。上述式(3)只是利用锥体模型沿三维坐标系的z轴生成圆盘显示树形数据的一个例子。本领域的技术人员容易想到,也可以使用其它模型构建树形数据的圆盘显示,如利用二次曲线形成的旋转体模型等,只要上一级圆盘的半径大于下一级圆盘的半径即可。这样的设置有利于关闭一些下级圆盘,如式(3)那样将距离焦点较远的下级圓盘的半径设置为0,以便为上级圆盘提供更大的显示空间。优选地,为了提高显示区域的利用率,还可以使得上级圆盘间的距离大于下级圓盘间的距离,从而有利于突出显示焦点并清楚地显示有关焦点的上下文。在另一实施方式中,对于圆盘级间有足够距离的情况,甚至可以使用上下级圆盘半径相等的圆柱体模型。因此,对构建树形数据的圆盘显示所使用的模型的不同选择不构成对本发明的限制。按照上述式(3)计算出的各级圓盘间的距离和每级圓盘的半径,在图7所示流程的步骤710中重新安排各级圆盘在显示区域中的布局,从而清楚地显示出各级圆盘之间的关系。图7所示流程结束。下面在图8中示出上式(3)中各参数之间关系的一个例子的图,其中各个参数表示的含义如参照图7所进行的说明。如图8所示,以实线示出的圆盘是显示在显示区域中的圆盘,其中的最底层为显示初始级。以虚线示出的圆盘是没有显示在显示区域中的圆盘,可以为根据本发明实施方式的生成树形数据显示的方法设置一个滚动条,通过拖动该滚动条,改变显示区域中显示的圓盘及其上下文。例如在本实施方式中,向上滚动滚动条将在显示区域中显示较高层级,而树形数据中的较低层级将不显示。相反,向下滾动滚动条将在显示区域中显示较低层级,而树形数据中的较高层级将不可显示。也可以通过逐个点击圓盘、将被点击的圆盘设置为显示区域的最高级并显示其下级圆盘,改变显示区域中显示的圓盘的不同级及其上下文。还可以通过类似摇镜头、将位于镜头中心区域的圆盘设置为最上级圆盘并显示其下级圆盘作为上下文的方式,改变显示区域中的显示的圆盘的不同级及其上下文。在本实施方式中,显示设备显示区域的最大高度i^w能容纳最多X个圆盘级。对于分辨率为1024x768的显示区域,上述参数以及根据式(3)计算出的各级圆盘间的距离和每级圓盘的半径的例子如下表所示<table>tableseeoriginaldocumentpage20</column></row><table>其中,在该例子中,将显示区域中用于显示圆盘的最大高度指定为显示区域高度的80%,即//max=614.4,指定X为4,A为1,为300。则根据式(3)分别计算出当前圆盘级为第2级、第3级和第4级时的圆盘间距离和半径。其中,以下式计算a-arctan(Z/腦乂(r;^代入前述根据式(1)例子计算的根级圓盘半径r作为r謹=783.51,计算得到a-arctan(614.4/(783.51-300))=51.80。图9针对图3中的另一步骤316示出其详细流程,用于说明如何在当前级圆盘中展开子圆盘的过程。图9所示流程开始后,在步骤902,判断当前级圆盘中已展开的子圆盘数目C是否大于或等于该级最多支持展开的子圆盘数目C目,。可以根据显示设备的显示区域的具体情况或者用户的需要设置当前级最多支持展开的子圆盘数目C^,例如2或3。当经判断,当前级圆盘中已展开的子圆盘数目C小于该级最多支持展开的子圆盘数目C^似时,说明从数量上而言,还可以直接在当前级展开子圆盘。此时,流程进入步骤904。在步骤904,进一步判断当前级中是否存在其它子圆盘。当经判断不存在其它子圆盘时,图9所示流程进入步骤906。在步骤906中,直接在当前级展开选中节点对应的子圓盘。该子圓盘半径可以参照前述式(1)进行计算,圆心可以是选中节点原先所在位置。当在步骤902经判断当前级圆盘中已展开的子圆盘数目C大于或等于该级最多支持展开的子圆盘数目Cw。,时,说明当前展开的子圆盘数目已达到最大值,因此,图9所示流程将进入步骤908。在步骤908,将关闭当前级中已展开的至少一个子圆盘。优选地,可以是最内侧子圆盘和/或者是最早展开的子圆盘等。由于由用户选中的节点将旋转到圆盘中央正对用户的位置作为焦点突出显示,因此,关闭最内侧子圓盘就是关闭离当前焦点最远的节点对应的子圆盘。步骤908之后,图9所示流程返回步骤904。当在步骤904中经判断当前级存在其它子圆盘时,图9所示流程进入步骤910。在步骤910,按照下式计算各子圆盘之间的最小展开角y,也就是说,各子圆盘之间的展开角应该大于或者等于该最小展开角y:<formula>formulaseeoriginaldocumentpage21</formula>(4)其中,表示第一子圆盘的半径,。2表示第二子圆盘的半径,。表示当前级圆盘的半径。根据该最小展开角y,流程返回步骤卯6进行操作。图9所示流程结束。对上述最小展开角Y可以参见图10的示意图。图10中以半径为。表示的圆圏为当前级圆盘,其圆周上分布的实心原点表示当前级圆盘上的节点。类似于现有技术中圆盘形式显示的数据,圆盘的折叠部分省略了其它未示出节点。半径分别为,,7和。2表示的圆圈为当前级展开的两个子圆盘,其之间的最小展开角y利用上式(4)计算。为了进一步说明图9中步骤908的操作,图lla-图llb示出了如何在已展开的子圆盘数目C大于或等于该级最多支持展开的子圆盘数目C^时进行操作的示意图。在本实施方式中,以该级最多支持展开的子圆盘数目C;^等于2作为例子。当在图lla中示出的多级圆盘的情况下,接收到用户对节点1.2.3的选择时,在图9的步骤908中,将优选地关闭相对于节点1.2.3位于最内侧的子圆盘,即节点1.2.1对应的子圆盘,如图llb中示出的。上面通过对根据本发明实施方式的生成树形数据显示的方法的详细说明,可以实现在树形数据的基础上顺次生成以圆盘形式显示的该树形数据。由于可以随时根据需要设置可视级总数X,从而能够动态调整显示设备上显示区域所显示的圆盘级数,令焦点的显示更加突出,并使得树形数据显示的各级圆盘中节点的关系更加清楚。尤其在树形数据量大时,可以通过减少可视级总数X,有效避免节点的重叠,由此克服了现有技术中存在的问题。为了实现根据本发明实施方式的生成树形数据显示的方法,本发明还提供了相应的设备。图12示出根据本发明实施方式的生成树形数据显示的设备1200的结构框图。该设备包括初始化装置1202、显示装置1204、接收装置1206、判断装置1208、上级展开装置1210、平级展开装置1212以及当前级变更装置1214,其中判断装置1208包括选中节点判断装置1208-1和当前级展开判断装置1208-2。由初始化装置1202获取待显示的树形数据。该树形数据可以由生成树形数据显示的设备1200本身生成或者接收自与生成树形数据显示的设备1200耦合的其它设备(未示出)。初始化装置1202根据用于显示树形数据的显示装置1204的具体情况在显示区域中建立三维坐标系并设置显示区域中的可视级总数X。应当理解,现有技术中的各种建立三维坐标系的方法都可以使用,并且各种三维坐标系(包括坐标系的不同方向设置)都可以使用,只要能够以三维视觉形式显示容纳各级节点的圆盘即可。用户也可以基于各种考虑设置可视级总数X。以上述建立的三维坐标系为基础,初始化装置1202根据所获取的树形数据,生成根级圆盘,并将该根级圆盘设置为当前级,送入显示装置1204进行显示输出。接收装置1206用于接收用户对节点的选择,并可将其突出显示。应当理解,用户如何选择节点不构成对本发明的限制。根据该选择,由判断装置1208中的选中节点判断装置1208-1判断用户选中的节点是否为当前级中的节点。当经判断用户选中的节点是当前级中的节点时,当前级展开判断装置1208-2将进一步判断选中的节点对应的子圆盘是否可在当前级圆盘内展开。当经当前级展开判断装置1208-2判断,不可在当前级圆盘内展开选中节点的子圓盘时,将由上级展开装置1210在当前级的上一级生成选中节点对应的子圓盘,并将该子圆盘设置为当前级。由上级展开装置1210逐级生成的多级圆盘将送入显示装置1204进行显示。有关上级展开装置1210的详细结构将在后面结合图14进行说明。另一方面,当经当前级展开判断装置1208-2判断,可在当前级圆盘内展开选中节点对应的子圆盘时,将由平级展开装置1212在当前级圆盘内生成选中节点对应的子圆盘。包括由平级展开装置1212生成的平级展开的多个圆盘将送入显示装置1204进行显示。有关平级展开装置1212的详细结构将在后面结合图15进行说明。当上级展开装置1210生成上一级子圆盘后,此时接收装置1206可能接收到用户对根级或者上一级子圆盘中节点的选择。当选中节点判断装置1208-1判断出用户选择的节点并非当前级圆盘内的节点时,在本实施方式中,即此时选择的并非为展开的子圆盘内的节点,而是根级圆盘内的节点时,将由当前级变更装置1214进行处理。当前级变更装置1214只保留选中节点所在圆盘及其下级圆盘一一在本实施方式中当前仅为根级圆盘一一而关闭其它圆盘,并将选中节点所在圆盘设置为当前级,选中节点作为焦点。之后针对该已变更后的当前级作为新的当前级,继续由当前级展开判断装置1208-2执行与上述类似的判断处理,并相应地由其他装置执行后续操作,从而生成树形数据显示。关于生成树形数据显示的设备1200中当前级展开判断装置1208-2的内部结构如图13示出。在图13中,当前级展开判断装置1208-2包括子圆盘半径计算装置1302、半径阈值确定装置1304和比较判断装置1306。由子圆盘半径计算装置1302计算选中节点n对应的子圆盘半径厂。由半径阈值确定装置1304确定平级生成子圆盘半径的阈值R,即在当前级圆盘平级展开子圆盘的最大半径值。在比较判断装置1306中,将上述获得的选中节点对应的子圆盘半径^和平级生成子圆盘半径的阈值R相比较。当经判断选中节点对应的子圆盘半径r大于当前级生成子圓盘半径的阈值R时,将树形数据送入图12所示上级展开装置1210执行前述在当前级的上一级生成选中节点对应的子圆盘,并将该子圆盘设置为当前级的操作,否则,平级展开装置1212执行在当前级圆盘内生成选中节点对应的子圆盘的操作。为了进一步说明图12中上级展开装置1210的内部结构,下面结合图14进行说明。图14示出的上级展开装置1210包括当前级设置装置1402、可视级数目判断装置1404、显示初始级确定装置1406、级间距离和半径计算装置1408以及圆盘重排装置1410,其中显示初始级确定装置1406、级间距离和半径计算装置1408以及圆盘重排装置1410整体称为圆盘显示装置1412。由当前级设置装置1402将当前级的上一级设置为新的当前级。此时,当前级编号/增加l。可视级数目判断装置1404判断当前级编号/是否大于可视级总数X。当经判断当前级编号/大于可视级总数X时,显示初始级确定装置1406修改显示初始级的编号/。,使之等于/-人十l,从而令图12中显示装置1204的显示区域中始终最多显示X级圆盘,由此保证本实施方式的生成树形数据显示的设备1200能够突出地显示焦点并且清楚地显示焦点的上下文。之后,由级间距离和半径计算装置1408计算各级圆盘间的距离和每级圆盘的半径。按照级间距离和半径计算装置1408计算出的各级圆盘间的距离和每级圆盘的半径,圆盘重排装置1410将重新安排各级圆盘在显示区域中的布局,并最终将清楚地显示出各级圆盘之间关系的多级圆盘送入显示装置1204进行显示。另一方面,使用平级展开装置1212执行在当前级圆盘内生成选中节点对应的子圆盘的操作,平级展开装置1212的内部结构如图15所示。平级展开装置1212包括子圆盘数目判断装置1502、圆盘关闭装置1504、子圆盘存在判断装置1506、最小展开角计算装置1508以及选中节点子圆盘展开装置1510。子圆盘数目判断装置1502判断当前级圆盘中已展开的子圓盘数目c是否大于或等于该级最多支持展开的子圆盘数目c^。当经判断,当前级圆盘中已展开的子圆盘数目c小于该级最多支持展开的子圆盘数目cma;c时,说明从数量上而言,还可以直接在当前级展开子圆盘。此时,由子圓盘存在判断装置1506进一步判断当前级中是否存在其它子圆盘。当经判断不存在其它子圆盘时,选中节点子圆盘展开装置1510直接在当前级展开选中节点对应的子圆盘。当在子圆盘数目判断装置1502经判断当前级圆盘中已展开的子圆盘数目c大于或等于该级最多支持展开的子圆盘数目c^时,说明当前展开的子圆盘数目已达到最大值,因此,圆盘关闭装置1504将关闭当前级中已展开的至少一个子圆盘。之后,由子圆盘存在判断装置1506进行进一步判断、操作,并在当前级不存在其它子圆盘时,执行前述操作。当在子圆盘存在判断装置1506经判断当前级存在其它子圆盘时,由最小展开角计算装置1508计算各子圆盘之间的最小展开角y。根据该最小展开角y,将由选中节点子圆盘展开装置1510在当前级展开选中节点对应的子圓盘。本发明实施方式的生成三维圆盘形式树形数据显示的方法可以在一个计算机系统中以集中方式实现,或者以分布方式实现。适于实现这里描述的方法的任何类型的计算机系统或者其他设备,都适合执行这里描述的功能。下面的图16示意性地表示了其中可以实现本发明的实施例的计算机系统。图16中所示的计算机系统包括cpu(中央处理单元)1601、ram(随机存取存储器)1602、rom(只读存储器)1603、系统总线1604,硬盘(hd)控制器1605、键盘控制器1606、串行接口控制器1607、25并行接口控制器1608、显示器控制器1609、硬盘1610、键盘16U、串行外部设备1612、并行外部设备1613和显示器1614。在这些部件中,与系统总线1604相连的有CPU1601、RAM1602、ROM1603、HD控制器1605、键盘控制器1606、串行接口控制器1607、并行接口控制器1608和显示器控制器1609。硬盘1610与HD控制器1605相连,键盘1611与键盘控制器1606相连,串行外部设备1612与串行接口控制器1607相连,并行外部设备1613与并行接口控制器1608相连,以及显示器1614与显示器控制器1609相连。图16中每个部件的功能在本
技术领域
内都是众所周知的,并且图16所示的结构也是常规的。这种结构不仅用于个人计算机,而且用于手持设备,如PalmPC、个人数据助理(PDA)、移动电话等等。在不同的应用中,图16中所示的某些部件可以被省略。图16中所示的整个系统由通常作为软件存储在硬盘1610中、或者存储在EPROM或者其它非易失性存储器中的计算机可读指令控制。软件也可从网络(图中未示出)下载或者存储在硬盘1610中。从网络下载的软件可被加载到RAM1602中,并由CPU1601冲丸行,以1更完成由软件确定的功能。尽管图16中描述的计算机系统能够支持根据本发明的生成三维圆盘形式树形数据显示的方法,但是该计算机系统只是计算机系统的一个例子。本领域的熟练技术人员可以理解,许多其它计算机系统设计也能实现本发明的实施例。本发明还可以实现为一种例如由图16所示计算机系统所使用的计算机程序产品,其包含有用于执行根据本发明的生成三维圆盘形式树形数据显示的方法的代码。在使用之前,可以把代码存储在其它计算机系统的存储器中,例如,存储在硬盘或诸如光盘或软盘的可移动的存储器中,或者经由因特网或其它计算机网络进行下载。所公开的本发明的方法可以在软件、硬件、或软件和硬件的结合中实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器、个人计算机(PC)或大型机来执行。虽然已经参考目前考虑到的实施例描述了本发明,但是应该理解本发明不限于所公开的实施例。相反,本发明旨在涵盖所附权利要求的精神和范围之内所包括的各种修改和等同布置。以下权利要求的范围符合最广泛解释,以便包含所有这样的修改及等同结构和功能。权利要求1.一种生成三维圆盘形式树形数据显示的方法,所述树形数据以多级三维圆盘形式显示,包括如下步骤接收用户对所述圆盘中节点的选择;根据所述用户选中的节点对应的子圆盘的半径以及该选中节点所在圆盘的半径,判断是否可在该选中节点所在圆盘内展开所述子圆盘;以及当经判断可在该选中节点所在圆盘内展开所述子圆盘时,在该选中节点所在圆盘内展开所述子圆盘。2.根据权利要求1所述的生成三维圆盘形式树形数据显示的方法,其中所述用户选中的节点对应的子圓盘的半径取决于以下因素中的至少一个用于显示所述三维圆盘形式树形数据的显示设备的操作条件、所述选中节点作为父节点包括的子节点的个数。3.根据权利要求1所述的生成三维圆盘形式树形数据显示的方法,其中所述用户选中的节点对应的子圆盘的半径以下式计算其中,r是所述用户选中的节点对应的子圆盘的半径,^和^是根据显示所述多级三维圆盘的显示区域确定的参数;w为所述用户选中的节点作为父节点包括的子节点的个数。4.根据权利要求l所述的生成三维圓盘形式树形数据显示的方法,其中根据所述用户选中的节点对应的子圆盘的半径以及该选中节点所在圆盘的半径,判断是否可在该选中节点所在圆盘内展开所述子圓盘的步骤在所述子圆盘半径小于或等于与所述选中节点所在圆盘的半径相关的阈值时,判断可在该选中节点所在圆盘内展开所述子圆盘。5.根据权利要求1所述的生成三维圆盘形式树形数据显示的方法,其中在所述选中节点所在圆盘内展开所述子圆盘包括如下步骤判断所述选中节点所在圆盘中已展开子圆盘的数目是否大于或等于该圆盘最多支持展开的子圆盘数目;以及当经判断所述选中节点所在圆盘中已展开子圆盘的数目大于或等于该圆盘最多支持展开的子圆盘数目时,关闭所述选中节点所在圆盘中至少一个已展开子圓盘后,在该选中节点所在圆盘内展开所述用户选中的节点对应的子圆盘。6.根据权利要求5所述的生成三维圆盘形式树形数据显示的方法,其中在所述选中节点所在圆盘内展开所述用户选中的节点对应的子圆盘步骤还包括如下步骤判断所述选中节点所在圓盘内是否存在其他子圓盘;当经判断所述选中节点所在圓盘内存在其他子圆盘时,计算各个子圆盘之间的最小展开角;以及根据所述最小展开角,在所述选中节点所在圆盘内安排所述用户选中的节点对应的子圓盘。7.根据权利要求6所述的生成三维圆盘形式树形数据显示的方法,其中根据下式计算各子圆盘之间的最小展开角最小展开角=arcsin(>*〃/n)+arcsin(。乂^)其中,表示第一子圓盘的半径,。2表示第二子圆盘的半径,。表示所述选中节点所在圆盘的半径。8.根据权利要求4所述的生成三维圓盘形式树形数据显示的方法,其中与所述选中节点所在圆盘的半径相关的阈值为所述选中节点所在圓盘的半径的四分之一。9.一种生成三维圆盘形式树形数据显示的方法,所述树形数据以多级三维圆盘形式显示,所述方法包括如下步骤设置可视级总数,所述可视级总数为显示所述多级三维圆盘的区域中最多显示的圆盘级数;接收用户对所述圓盘中节点的选择;只保留所述节点所在的圆盘及其下级圓盘,并关闭其他圆盘;以及展开所述用户选中的节点对应的子圆盘,并以展开该子圆盘的圆盘作为最上一级圆盘,显示圆盘级数不超出所述可视级总数的各圓盘级。10.根据权利要求9所述的生成三维圓盘形式树形数据显示的方法,其中所述展开所述用户选中的节点对应的子圓盘,并以展开该子圆盘的圓盘作为最上一级圓盘,显示圆盘级数不超出所述可视级总数的各圆盘级的步骤包括如下步骤才艮据所述用户选中的节点对应的子圆盘的半径以及该选中节点所在圆盘的半径,判断是否可在该选中节点所在圆盘内展开所述子圆盘;当经判断可在该选中节点所在圆盘内展开所述子圆盘时,在该选中节点所在圓盘内展开所述子圆盘;当经判断不可在该选中节点所在圓盘内展开所述子圆盘时,进一步判断显示所述多级三维圆盘的区域中当前显示圆盘级数是否小于所述可视级总数;当经判断当前显示圆盘级数小于所述可视级总数时,在该选中节点所在圆盘的上一级展开所述子圆盘;以及当经判断当前显示圆盘级数不小于所述可视级总数时,关闭显示所述多级三维圆盘的区域中最底级圆盘,并在该选中节点所在圓盘的上一级展开所述子圆盘。11.根据权利要求9或10所述的生成三维圆盘形式树形数据显示的方法,还包括浏览各级圓盘,并显示随浏览操作出现在所述显示所述多级三维圆盘的区域中的圆盘级。12.—种生成三维圓盘形式树形数据显示的设备,用于以多级三维圆盘形式显示树形数据,包括接收装置,用于接收用户对所述圆盘中节点的选择;判断装置,用于根据所述用户选中的节点对应的子圆盘的半径以及该选中节点所在圆盘的半径,判断是否可在该选中节点所在圓盘内展开所述子圓盘;以及平级展开装置,当经判断可在该选中节点所在圆盘内展开所述子圆盘时,在该选中节点所在圆盘内展开所述子圆盘。13.根据权利要求12所述的生成三维圆盘形式树形数据显示的设备,其中,所述用户选中的节点对应的子圆盘的半径以下式计算其中,r是所述用户选中的节点对应的子圆盘的半径,v4和S是根据显示所述多级三维圆盘的显示区域确定的参数;W为所述用户选中的节点作为父节点包括的子节点的个数。14.根据权利要求12所述的生成三维圆盘形式树形数据显示的设备,其中所述判断装置包括子圆盘半径计算装置,用于计算所述子圆盘半径;半径阈值确定装置,用于确定与所述选中节点所在圆盘的半径相关的阈值;比较判断装置,用于将所述子圆盘半径和与所述选中节点所在圆盘的半径相关的阈值进行比较,并在所述子圆盘半径小于或等于与所述选中节点所在圆盘的半径相关的阈值时,判断可在该选中节点所在圆盘内展开所述子圆盘。15.根据权利要求12所述的生成三维圆盘形式树形数据显示的设备,其中所述平级展开装置包括子圆盘数目判断装置,用于判断所述选中节点所在圆盘中已展开子圆盘的数目是否大于或等于该圆盘最多支持展开的子圆盘数目;以及圆盘关闭装置,用于当经判断所述选中节点所在圆盘中已展开子圆盘的数目大于或等于该圆盘最多支持展开的子圆盘数目时,关闭所述选中节点所在圓盘中至少一个已展开子圆盘;以及子圆盘展开装置,用于当所述选中节点所在圆盘中已展开子圆盘的数目小于该圆盘最多支持展开的子圆盘数目时,在所述选中节点所在圆盘内展开所述用户选中的节点对应的子圆盘。16.根据权利要求15所述的生成三维圓盘形式树形数据显示的设备,其中所述子圆盘展开装置包括子圆盘存在判断装置,用于判断所述选中节点所在圆盘内是否存在其他子圓盘;最小展开角计算装置,用于当经判断所述选中节点所在圆盘内存在其他子圆盘时,计算各个子圆盘之间的最小展开角;以及选中节点子圆盘展开装置,用于根据所述最小展开角,在所述选中节点所在圆盘内安排所述用户选中的节点对应的子圓盘。17.根据权利要求16所述的生成三维圆盘形式树形数据显示的设备,其中根据下式计算各子圆盘之间的最小展开角最小展开角=arcsinO;)+arcsin(。2/。)其中,表示第一子圆盘的半径,。2表示第二子圓盘的半径,。表示所述选中节点所在圆盘的半径。18.—种生成三维圓盘形式树形数据显示的设备,用于以多级三维圆盘形式显示树形数据,包括可视级总数设置装置,所述可视级总数为显示所述多级三维圆盘的区域中最多显示的圓盘级数;接收装置,用于接收用户对所述圆盘中节点的选择;当前级变更装置,用于只保留所述节点所在的圆盘及其下级圆盘,并关闭其他圆盘;以及展开装置,用于展开所述用户选中的节点对应的子圆盘,并以展开该子圓盘的圆盘作为最上一级圆盘,显示圆盘级数不超出所述可视级总数的各圆盘级。19.根据权利要求18所述的生成三维圓盘形式树形数据显示的设备,其中所述展开装置包括当前级展开判断装置,用于根据所述用户选中的节点对应的子圓盘的半径以及该选中节点所在圆盘的半径,判断是否可在该选中节点所在圆盘内展开所述子圆盘;平级展开装置,用于当经判断可在该选中节点所在圓盘内展开所述子圆盘时,在该选中节点所在圆盘内展开所述子圆盘;以及可视级数目判断装置,用于当经判断不可在该选中节点所在圆盘内展开所述子圆盘时,进一步判断显示所述多级三维圆盘的区域中当前显示圓盘级数是否小于所述可视级总数;圆盘显示装置,当经判断当前显示圆盘级数小于所述可视级总数时,在该选中节点所在圓盘的上一级展开所述子圓盘,以及当经判断当前显示圆盘级数不小于所述可视级总数时,关闭显示所迷多级三维圆盘的区域中最底级圆盘,并在该选中节点所在圆盘的上一级展开所述子圓盘。20.根据权利要求18或19所述的生成三维圆盘形式树形数据显示的设备,还包括圆盘浏览装置,用于显示随浏览操作出现在所述显示所述多级三维圆盘的区域中的圆盘级。全文摘要本发明提供了一种生成三维圆盘形式大规模树形数据显示的方法,包括如下步骤接收用户对圆盘中节点的选择;根据用户选中的节点对应的子圆盘的半径以及该选中节点所在圆盘的半径,判断是否可在该选中节点所在圆盘内展开子圆盘;以及当经判断可在该选中节点所在圆盘内展开子圆盘时,在该选中节点所在圆盘内展开子圆盘。本发明还提供了能实现上述方法的设备。根据本发明的方法和设备能够动态调整显示设备上所显示的圆盘级数,令焦点的显示更加突出,并使得树形数据显示的各个层级中节点的关系更加清楚。文档编号G06F3/048GK101295222SQ200710107720公开日2008年10月29日申请日期2007年4月28日优先权日2007年4月28日发明者刘世霞,楠曹,辉苏申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1