CN107291725B - 生成多向树的方法和装置 - Google Patents
生成多向树的方法和装置 Download PDFInfo
- Publication number
- CN107291725B CN107291725B CN201610196045.XA CN201610196045A CN107291725B CN 107291725 B CN107291725 B CN 107291725B CN 201610196045 A CN201610196045 A CN 201610196045A CN 107291725 B CN107291725 B CN 107291725B
- Authority
- CN
- China
- Prior art keywords
- node
- tree
- nodes
- coordinates
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种生成多向树的方法和装置。所述方法的一具体实施方式包括:将待生成多向树的数据元素分为至少一个数据集合,其中,同一个所述数据集合中的数据元素具有相同的方向属性;对各个数据集合,分别将其中的数据元素通过预设的生成模型生成具有节点坐标属性的树节点,其中,所述树节点包括根节点和子节点,所述树节点与所述数据元素一一对应;将所述树节点的节点坐标映射为节点所属方向上的节点方向坐标;使根据各个数据集合生成的根节点的节点坐标相同,并且仅一个根节点可见;根据所述节点方向坐标和所设置的根节点坐标将所述数据元素生成多向树。该实施方式可以增强多向树的可视化效果。
Description
技术领域
本申请涉及计算机技术领域,具体涉及数据显示技术领域,尤其涉及一种生成多向树的方法和装置。
背景技术
在计算机领域,数据元素(data element)是数据的基本单位,一个数据元素可由若干数据项组成,数据项是数据的不可分割的最小单位,例如,一本书的书目信息为一个数据元素,而书目信息的每一项(如书名、作者名等)为一个数据项。具有层次关系的数据元素,例如在具有数据流向的数据元素、具有调用与被调用关系的数据元素等等,通常可以通过树状图表示。当树状图的根节点下有多个子节点时,每个子节点可以位于根节点的不同方向,生成多向树。
目前的多向树生成方法中,以生成的多向树为双向树为例,通常将全部数据元素一起生成具有一个方向(例如右)上的节点坐标属性的树节点(树节点中存放相应的数据元素),然后将树节点中具有另一个方向(例如左)的方向属性的子节点的坐标值中表示上述方向(例如左右方向)的坐标值取关于根节点相应坐标值对称的值。如图1所示,首先生成包括根节点1000(例如坐标,为(0,0)),子节点101、102′、103′、104、105、106的树节点,此时,各子节点均匀地分布于根节点1000的右侧,然后将具有“左”的方向属性的子节点102′、103′在水平方向的坐标值取反,得到左侧子节点102、103,并将子节点102′、103′从右侧去除,得到的双向树如图1所示。从图1可以看出,上述方法生成的多向树节点分布不均匀,多向树的最终形态与数据元素的顺序有关,同时,在子节点生成新的子树时,有可能和其他子节点的子树在图形上产生重叠,不利于数据的展现。因此,现有的生成多向树的方法所生成的多向树存在可视化效果较差的问题。
发明内容
本申请的目的在于提出一种改进的生成多向树方法和装置,来解决以上背景技术部分提到的技术问题。
一方面,本申请提供了一种生成多向树方法,所述方法包括:将待生成多向树的数据元素分为至少一个数据集合,其中,同一个所述数据集合中的数据元素具有相同的方向属性;对各个数据集合,分别将其中的数据元素通过预设的生成模型生成具有节点坐标属性的树节点,其中,所述树节点包括根节点和子节点,所述树节点与所述数据元素一一对应;将所述树节点的节点坐标映射为节点所属方向上的节点方向坐标;使根据各个数据集合生成的根节点的节点坐标相同;根据所述节点方向坐标和所设置的根节点坐标将所述数据元素生成多向树。
在一些实施例中,所述预设的生成模型通过以下方法对单个数据集合生成树节点:生成与所述单个数据集合中的数据元素具有相同方向属性的根节点,并根据预设的展示区域的长宽数据生成所述根节点的节点坐标;对所述单个数据集合中的各个数据元素分别生成包含所述方向属性的子节点,并根据所述单个数据集合中数据元素的数量计算各个子节点的节点坐标。
在一些实施例中,所述预设的展示区域为二维区域。
在一些实施例中,所述根据预设的展示区域的长宽数据生成所述根节点的节点坐标包括:将所述二维区域的一侧边的中点坐标作为所述根节点的节点坐标;以及,所述根据所述单个数据集合中数据元素的数量计算各个子节点的节点坐标包括:所述子节点的节点坐标的一坐标值为根节点的相应坐标值与预设偏移值的和,当所述子节点的数量为一时,所述子节点的节点坐标的另一坐标值与所述根节点的相应坐标值相同,当所述子节点的数量大于一时,所述子节点的节点坐标的另一坐标值沿所述二维区域的一侧边的邻边方向均匀分布。
在一些实施例中,所述使根据各个数据集合生成的根节点的节点坐标相同之后还包括:使仅一个根节点可见;使不可见的根节点不响应任何事件。
第二方面,本申请提供了一种生成多向树装置,所述装置包括:分组模块,配置用于将待生成多向树的数据元素分为至少一个数据集合,其中,同一个所述数据集合中的数据元素具有相同的方向属性;树节点生成模块,配置用于对各个数据集合,分别将其中的数据元素通过预设的生成模型生成具有节点坐标属性的树节点,其中,所述树节点包括根节点和子节点,所述树节点所述数据元素一一对应;映射模块,配置用于将所述树节点的节点坐标映射为节点所属方向上的节点方向坐标;根节点合并模块,配置用于使根据各个数据集合生成的根节点的节点坐标相同;多向树生成模块,配置用于根据所述节点方向坐标和所设置的根节点坐标将所述数据元素生成多向树。
在一些实施例中,所述预设的生成模型包括对单个数据集合生成树节点的以下单元:根节点生成单元,配置用于生成与所述单个数据集合中的数据元素具有相同方向属性的根节点,并根据预设的展示区域的长宽数据生成所述根节点的节点坐标;子节点生成单元,配置用于对所述单个数据集合中的各个数据元素分别生成包含所述方向属性的子节点,并根据所述单个数据集合中数据元素的数量计算各个子节点的节点坐标。
在一些实施例中,所述预设的展示区域为二维区域。
在一些实施例中,所述根节点生成单元还配置用于:
将所述二维区域的一侧边的中点坐标作为所述根节点的节点坐标;以及,所述子节点生成单元还配置用于:使所述子节点的节点坐标的一坐标值为根节点的相应坐标值与预设偏移值的和,当所述子节点的数量为一时,使所述子节点的节点坐标的另一坐标值与所述根节点的相应坐标值相同,当所述子节点的数量大于一时,所述子节点的节点坐标的另一坐标值沿所述二维区域的一侧边的邻边均匀分布。
在一些实施例中,所述根节点合并模块还配置用于:使仅一个根节点可见;使不可见的根节点不响应任何事件。
本申请提供的生成多向树方法和装置,通过将待生成多向树的数据元素分为至少一个数据集合,其中,同一个所述数据集合中的数据元素具有相同的方向属性,然后对各个数据集合,分别将其中的数据元素通过预设的生成模型生成具有节点坐标属性的树节点,其中,树节点包括根节点和子节点,所述树节点与所述数据元素一一对应,接着将树节点的节点坐标映射为节点所属方向上的节点方向坐标,使根据各个数据集合生成的根节点的节点坐标相同,然后根据节点方向坐标和所设置的根节点坐标将上述数据元素生成多向树。这种生成多向树的方法和装置将具有不同方向属性的数据元素分别按照树的结构计算节点坐标,使每个方向上的节点分布均匀,以增强多向树的可视化效果。
附图说明
通过阅读参照以下附图所作的对非限制性实施例的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据现有技术的生成多向树的方法生成的多向树示意图;
图2是根据本申请的生成多向树的方法的一个实施例的流程图;
图3是根据本申请的生成多向树的方法的一个实施例生成的多向树示意图;
图4是根据本申请的生成多向树的方法的又一个实施例生成的多向树示意图;
图5是根据本申请的生成多向树的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图2,其示出了生成多向树的方法的一个实施例的流程200。本实施例主要以该方法应用于有一定运算能力的电子设备中来举例说明。该生成多向树的方法,包括以下步骤:
步骤201,将待生成多向树的数据元素分为至少一个数据集合。
在本实施例中,电子设备可以首先获取待生成多向树的数据元素,并将这些数据元素分成至少一个数据集合。其中,数据元素可以具有方向属性,电子设备可以将具有相同的方向属性的数据元素加入同一个数据集合。这里,方向属性可以是表示数据元素相对于待生成的多向树的根节点的方向,例如左方。其中,数据元素的方向属性可以预先记录在数据元素的属性信息里,例如,如果数据元素是json(JavaScript Object Notation,JavaScript对象表示法)对象,其方向属性可以通过json对象的扩展属性“direction”属性来记录,当json对象的扩展属性“direction”的属性值为“left”时,表示该json对象相对于待生成的多向树的根节点位于左方,当json对象的“direction”属性的值为“right”时,表示该json对象相对于待生成的多向树的根节点位于右方。
电子设备可以仅获取待生成多向树的数据元素的方向属性信息,也可以获取待生成多向树的数据元素的全部属性信息,从中读取方向属性信息,将方向属性相同的数据元素加入同一个数据集合。其中,数据元素的属性信息可以是用来表征数据元素的特征或性质的信息,例如名称。
其中,对于待生成多向树的数据元素,如果确定了作为待生成多向树的根节点的数据元素,电子设备可以将该数据元素拆分为具有不同方向属性的多个数据元素,并在该步骤201中分别被划分到具有相应方向属性的数据集合中。
步骤202,对各个数据集合,分别将其中的数据元素通过预设的生成模型生成具有节点坐标属性的树节点。
在本实施例中,电子设备可以对每个数据集合中的数据元素,分别通过预设的生成模型按照树的结构形式生成树节点,其中,树节点可以包括根节点和子节点,每个树节点可以具有节点坐标属性,树节点可以与数据元素一一对应(例如,树节点中可以存放相应的数据元素)。这里,节点坐标属性的属性值可以包括节点的坐标值,以表示相应节点在树的结构形式中的相对位置。
这里,预设的生成模型可以是预先设定的、用于生成与数据元素相对应的树节点的数学模型。该预设的生成模型例如可以用于生成与数据集合中的数据元素至少具有一致方向属性的根节点和子节点、确定根节点和子节点的相对位置等。该预设的生成模型在确定根节点和子节点的相对位置时,可以以数据元素的实际显示区域为基础进行计算,也可以生成模型默认的坐标系为基础进行计算,本申请对此不做限定。
在本实施例的一些可选实现方式中,对单个数据集合,如果包含了确定作为待生成多向树的根节点的数据元素,生成模型可以首先生成与该单个数据集合中的数据元素具有相同方向属性的根节点,并根据预设的展示区域的长宽数据生成根节点的节点坐标,接着对该单个数据集合中的各个数据元素分别生成包含上述方向属性的子节点,并根据该单个数据集合中数据元素的数量计算各个子节点的节点坐标。在一些实现中,生成模型在生成树节点的节点坐标时,可以暂时以预设的展示区域为二维区域为基础建立坐标系进行计算。例如将二维区域的一角作为坐标系的原点,该二维区域位于坐标系的第一象限。此时,可选地,生成模型可以按照以下方法分别对单个数据集合生成根节点和子节点的节点坐标:将二维区域的一侧边的中点坐标作为根节点的节点坐标;子节点的节点坐标的一坐标值为根节点的相应坐标值与预设偏移值的和,当子节点的数量为1时,子节点的节点坐标的另一坐标值为根节点的相应坐标值,当子节点的数量大于1时,子节点的节点坐标的另一坐标值沿上述二维区域的一侧边的邻边均匀分布
举例而言,当数据元素是json对象时,该生成模型可以是d3.layout.tree()计算模型。其中,d3.layout.tree()计算模型可以通过如下方法生成树节点:首先针对一个数据集合接收其中的数据元素,其中每个数据元素都可以具有属性信息,这里属性信息例如可以包括但不限于以下至少一项:数据元素的名称、数据元素的子元素集合、方向属性信息等等;接着定义一个空的待返回集合,用于容置计算生成的树节点;定义一个树节点对象,使其属性信息与数据集合中作为根节点的数据元素的属性信息一致,根据展示区域(假设为二维区域)的宽度W和高度H,为该树节点对象添加坐标属性,例如坐标值为(0,H/2),将该树节点对象加入待返回集合,作为生成的根节点;对于作为子节点的数据元素,对每个数据元素定义一个树节点对象,使其属性信息与相应数据元素的属性信息一致,作为生成的子节点,然后根据预设的节点偏移(可以用于标示根节点和子节点之间的平移距离)、子节点的数量及展示区域的宽度W或高度H计算子节点的坐标属性,例如预设的节点偏移为沿展示区域的宽度W方向偏移,偏移量为W1(W1<W),子节点个数为4个,则这4个子节点均匀分布在展示区域的宽度H上,分别位于0、H/3、2H/3、H的位置,它们在展示区域的宽度H方向上均匀分布的间隔为H/(子节点个数-1),当根节点坐标为(0,H/2)时,这4个子节点的坐标分别为(W1,0)、(W1,H/3)、(W1,2H/3)、(W1,H)。通过以上生成模型,电子设备可以对一个数据集合返回一个树节点集合。根据一个树节点集合中的树节点,可以生成待生成多向树中一个方向上的子树。
在一些实现中,数据元素还可以包括子元素集合,则相应的子节点还可以以子节点作为根节点,将其子元素集合中的数据子元素作为子节点,生成该子节点的子树的树节点,其中该子节点的子树的根节点坐标为该子节点的坐标,生成方法与上述方法相似,在此不再赘述。
步骤203,将上述树节点的节点坐标映射为节点所属方向上的节点方向坐标。
在本实施例中,电子设备接着可以将上述树节点的节点坐标映射为节点所属方向上的节点方向坐标。可以理解,步骤202中对每一个方向上的数据元素通过预设的生成模型生成了树节点,并计算出了通过节点坐标表示的树节点间的相对位置,然而,具有不同方向属性的树节点仅仅通过属性信息中的方向属性进行区分,而在节点坐标上并未区分,在进行显示时,无法区分根据各个数据集合生成的树节点的方向。因此,在本步骤中,电子设备可以进一步建立映射关系将由生成模型计算得到的树节点的节点坐标映射到相应数据元素所在的方向上。
作为示例,假设待生成多向树为三向树,电子设备在生成树节点时,例如数据元素的方向属性分别为“左”、“右”、“后”,分别表示数据元素位于根节点的左方、右方和后方。此时,假设待生成多向树的展示区域长度2L宽度为2W高度为H,对左方、右方和后方每一方的数据元素而言,展示区域分别为W×H、W×H、L×H,根据前述方法,假设生成模型的计算以右方的展示区域为参考,三个数据集合的根节点坐标都为(0,H/2),左方4个子节点的坐标分别为(W1,0)、(W1,H/3)、(W1,2H/3)、(W1,H),右方3个子节点的坐标分别为(W1,0)、(W1,H/2)、(W1,H),后方2个子节点的坐标分别为(W1,0)、(W1,H),其中W1大于0,W1为生成模型默认的坐标偏移量。此时,电子设备可以以展示区域的中心点为原点、右方为x轴正向、上方为y轴正向、后方为z轴正向建立坐标系。由于生成模型所生成的树节点的节点坐标都位于xy平面内,则:对于右方3个子节点,其坐标映射到该坐标系内为(W1,0,0)、(W1,H/2,0)、(W1,H,0);对于左侧4个子节点,在该坐标系内的坐标分别为(W1,0,0)、(W1,H/3,0)、(W1,2H/3,0)、(W1,H,0),由于左方子节点和右侧子节点在xy平面内关于y轴对称,则映射关系可以为:x左=-x右(即x坐标取反)、y左=y右、z左=z右,则左方4个子节点的坐标向左方映射的节点方向坐标为(-W1,0,0)、(-W1,H/3,0)、(-W1,2H/3,0)、(-W1,H,0);对于后方2个子节点,在该坐标系内的坐标分别为(W1,0,0)、(W1,H,0),由于后方在yz平面内由y轴正向和z轴正向组成的区域内,则映射关系可以为:x后=z右×W1/L1、y后=y右、z后=x右×L1/W1,其中,L1为z方向的偏移量,则后方2个子节点的坐标向后方映射的节点方向坐标为(0,0,L1)、(0,H,L1)。
在一些实现中,对不同数据集合生成的树节点,其根节点的坐标值可以不相同,此时将树节点的节点坐标映射为节点所属方向上的节点方向坐标的方法可以与上述方法类似,在此不再赘述。
步骤204,使根据各个数据集合生成的根节点的节点坐标相同。
在本实施例中,电子设备可以进一步通过使根据各个数据集合生成的根节点的节点坐标相同,从而使根据各个数据集合生成的树节点中的根节点在根据展示区域建立的坐标系中重合,以便电子设备最终根据所获取的数据元素生成一个多向树。
这里,由生成模型按照前述方法生成的树节点中,根节点可以相同,也可以不相同。同时,生成模型所生成的坐标可以是根据展示区域建立的坐标系中的坐标,也可以是生成模型默认的坐标系中坐标,本申请对此不做限定。可以理解,由于生成模型所生成的树节点的节点坐标表示相应节点在树的结构形式中的相对位置,在使根据各个数据集合生成的树节点中的根节点在根据展示区域建立的坐标系中重合后,可根据根节点的坐标对每个数据集合所生成的子节点坐标进行相应平移处理,以使根据每个数据集合所生成的子节点的相对位置保持不变。在一些实现中,生成模型在生成子节点坐标时所使用的偏移值可能也不适合展示区域的大小,此时电子设备还可以根据展示区域的大小对该偏移值进行缩放处理。在坐标系中,平移和缩放都是公知的技术,在此不再赘述。
在本实施例的一些可选实现方式中,电子设备还可以在使根据各个数据集合生成的根节点的节点坐标相同之后,进一步使这些根节点中仅一个根节点可见。例如,电子设备可以获取这些根节点的属性信息,将是否可见的属性信息的属性值修改为不可见,电子设备也可以为这些根节点添加属性信息项,用以设置节点是否可见,并将新建属性信息项的属性值设置为不可见。在一些实现中,电子设备还可以对不可见的根节点进一步设置其属性信息,使其不响应任何事件。
步骤205,根据上述节点方向坐标和所设置的根节点坐标将数据元素生成多向树。
在本实施例中,电子设备可以根据以上步骤得到的树节点的节点方向坐标和所设置的根节点坐标,分别绘制出多个数据集合的树节点及表现树节点间的关联关系的图形(例如将根节点与根节点的直接子节点相连的直线等),从而将数据元素生成多向树。其中,各树节点处可以显示相应的数据元素,也可以显示相应数据元素的相关存储位置或代号等,本申请对此不做限定。
请参考图3,图3是根据本申请的生成多向树的方法的一个实施例生成的多向树300的示意图。如图3所示,多向树300是双向树,根节点3000位于展示区域的中心,两个子节点302、303均匀分布于根节点3000的左侧区域,其中,子节点302、303分布的中心点与根节点3000在水平方向上具有预设的偏移量。同样,四个节点301、304、305、306均匀分布于根节点3000的右侧区域且中心点与根节点3000在水平方向上具有预设的偏移量。其中,根节点3000可以是相互重合的两个根节点,分别为:与生成子节点302、303的数据元素同样具有“左”的方向属性的根节点和与生成子节点301、304、305、306的数据元素同样具有“右”的方向属性的根节点,电子设备设置这两个根节点重合且有一个可见,即显示为根节点3000。
请参考图4,图4是根据本申请的生成多向树的方法的又一个实施例生成的多向树400的示意图。如图4所示,与图3中的双向树300类似,多向树400是双向树,根节点4000位于展示区域的中心,两个子节点402、403均匀分布于根节点4000的左侧区域,其中,子节点402、403分布的中心点与根节点3000在水平方向上具有预设的偏移量;四个子节点401、404、405、406均匀分布于根节点4000的右侧区域且中心点与根节点4000在水平方向上具有预设的偏移量。与图3中的双向树300不同的是,多向树400的子节点404中的数据元素具有子数据元素集合,按照与生成子节点401、404、405、406坐标类似的方法,生成子节点404的子节点4041、4042。由图4可以看出子节点4041和4042的中心点分布在与子节点404在水平方向上具有预设的偏移量处,且沿竖直方向均匀分布。
在本实施例中,通过具有不同方向属性的数据元素分别按照树的结构生成树节点并计算节点坐标,然后将各个方向的树节点的节点坐标映射为相应方向上的节点方向坐标,然后使各个方向的树节点中的根节点重合,生成多向树,由于各个方向的树节点的节点坐标在生成互不干扰,每个方向上的节点分布均匀,可以增强多向树的可视化效果。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种生成多向树的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于电子设备中。
如图5所示,本实施例所述的生成多向树的装置500包括:分组模块501、树节点生成模块502、映射模块503、根节点合并模块504和多向树生成模块505。其中,分组模块501可以配置用于将待生成多向树的数据元素分为至少一个数据集合,其中,同一个数据集合中的数据元素具有相同的方向属性;树节点生成模块502可以配置用于对各个数据集合,分别将其中的数据元素通过预设的生成模型生成具有节点坐标属性的树节点,其中,树节点可以包括根节点和子节点,树节点与数据元素一一对应;映射模块503可以配置用于将树节点的节点坐标映射为节点所属方向上的节点方向坐标;根节点合并模块504可以配置用于使根据各个数据集合生成的根节点的节点坐标相同;多向树生成模块505可以配置用于根据上述节点方向坐标和所设置的根节点坐标将上述数据元素生成多向树。
在本实施例中,分组模块501首先可以获取待生成多向树的数据元素,并将这些数据元素分成至少一个数据集合。其中,数据元素可以具有方向属性,分组模块501可以将具有相同的方向属性的数据元素加入同一个数据集合。这里,方向属性可以是表示数据元素相对于待生成的多向树的根节点的方向,例如左方。其中,对于待生成多向树的数据元素,如果确定了作为待生成多向树的根节点的数据元素,分组模块501可以将该数据元素拆分为具有不同方向属性的多个数据元素,并将它们分别划分到具有相应方向属性的数据集合中。
在本实施例中,树节点生成模块502接着可以分别针对分组模块501划分出的每个数据集合,对其中的数据元素通过预设的生成模型按照树的结构形式生成树节点,其中,树节点可以包括根节点和子节点,每个树节点可以具有节点坐标属性,树节点可以与数据元素一一对应。这里,节点坐标属性的属性值可以包括节点的坐标值,以表示相应节点在树的结构形式中的相对位置。树节点生成模块502在预设的生成模型确定根节点和子节点的相对位置时,可以以数据元素的实际显示区域为基础进行计算,也可以生成模型默认的坐标系为基础进行计算,本申请对此不做限定。
在本实施例中,映射模块503接着可以将上述树节点的节点坐标映射为节点所属方向上的节点方向坐标。此时,映射模块503可以建立树节点生成模块502生成上述树节点的节点坐标时的坐标系与根据待生成多向树的展示区域的坐标系之间的映射关系,通过坐标变换将树节点生成模块502生成的节点坐标变换为上述展示区域的坐标系中节点所属方向上的节点方向坐标。
在本实施例中,根节点合并模块504接着可以通过使根据各个数据集合生成的根节点的节点坐标相同,从而使根据各个数据集合生成的树节点中的根节点在根据展示区域建立的坐标系中重合,以便根据所获取的数据元素生成一个多向树。在一些实现中,电子设备还可以在使根据各个数据集合生成的根节点的节点坐标相同之后,进一步使这些根节点中仅一个根节点可见。可选地,电子设备还可以对不可见的根节点进一步设置其属性信息,使其不响应任何事件。
在本实施例中,多向树生成模块505接着可以根据映射模块503得到的树节点的节点方向坐标和经过根节点合并模块504设置的根节点坐标分别绘制出多个数据集合的树节点及表现树节点间的关联关系的图形,从而将数据元素生成多向树。
在本实施例的一些可选实现方式中,树节点生成模块502,预设的生成模型包括对单个数据集合生成树节点的以下单元:根节点生成单元(未示出),可以配置用于生成与单个数据集合中的数据元素具有相同方向属性的根节点,并根据预设的展示区域的长宽数据生成根节点的节点坐标;子节点生成单元(未示出),可以配置用于对单个数据集合中的各个数据元素分别生成包含上述方向属性的子节点,并根据单个数据集合中数据元素的数量计算各个子节点的节点坐标。在一些实现中,预设的展示区域为二维区域。此时,根节点生成单元可以配置用于将二维区域的一侧边的中点坐标作为根节点的节点坐标;子节点生成单元还可以配置用于使子节点的节点坐标的一坐标值为根节点的相应坐标值与预设偏移值的和,同时,当子节点的数量为一时,使子节点的节点坐标的另一坐标值与根节点的相应坐标值相同,当子节点的数量大于一时,子节点的节点坐标的另一坐标值可以沿二维区域的一侧边的邻边均匀分布。
值得说明的是,生成多向树的装置500中记载的诸模块或单元与参考图2描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于生成多向树的装置500及其中包含的模块或单元,在此不再赘述。
本领域技术人员可以理解,上述生成多向树的装置500还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图5中未示出。
下面参考图6,其示出了适于用来实现本申请实施例的电子设备的计算机系统600的结构示意图。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括分组模块、树节点生成模块、映射模块、根节点合并模块和多向树生成模块。其中这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,分组模块还可以被描述为“配置用于将待生成多向树的数据元素分为至少一个数据集合的模块”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,当所述程序被一个或者一个以上的处理器执行时,使得所述设备:将待生成多向树的数据元素分为至少一个数据集合,其中,同一个所述数据集合中的数据元素具有相同的方向属性;对各个数据集合,分别将其中的数据元素通过预设的生成模型生成具有节点坐标属性的树节点,其中,所述树节点包括根节点和子节点,所述树节点与所述数据元素一一对应;将所述树节点的节点坐标映射为节点所属方向上的节点方向坐标;使根据各个数据集合生成的根节点的节点坐标相同,并且仅一个根节点可见;根据所述节点方向坐标和所设置的根节点坐标将所述数据元素生成多向树。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种生成多向树的方法,其特征在于,所述方法包括:
获取待生成多向树的数据元素的方向属性,以及根据所获取的方向属性,将待生成多向树的数据元素分为至少一个数据集合,其中,同一个所述数据集合中的数据元素具有相同的方向属性,其中,方向属性用于表示数据元素相对于待生成的多向树的方向;
对各个数据集合,分别将其中的数据元素通过预设的生成模型生成具有节点坐标属性的树节点,其中,所述树节点包括根节点和子节点,所述树节点与所述数据元素一一对应;
将所述树节点的节点坐标映射为节点所属方向上的节点方向坐标;
使根据各个数据集合生成的根节点的节点坐标相同,且使仅一个根节点可见,以及根据根节点的节点坐标对每个数据集合生成的子节点的节点坐标进行平移处理,以使每个数据集合生成的子节点的相对位置保持不变;
根据所述节点方向坐标和所设置的根节点坐标,分别绘制每个数据集合的树节点和用于表现树节点间的关联关系的图形,将所述数据元素生成多向树;
其中,所述预设的生成模型通过以下方法对单个数据集合生成树节点:生成与所述单个数据集合中的数据元素具有相同方向属性的根节点,并根据预设的展示区域的长宽数据生成所述根节点的节点坐标;对所述单个数据集合中的各个数据元素分别生成包含所述方向属性的子节点,并根据所述单个数据集合中数据元素的数量计算各个子节点的节点坐标。
2.根据权利要求1所述的方法,其特征在于,所述预设的展示区域为二维区域。
3.根据权利要求2所述的方法,其特征在于,所述根据预设的展示区域的长宽数据生成所述根节点的节点坐标包括:
将所述二维区域的一侧边的中点坐标作为所述根节点的节点坐标;以及
所述根据所述单个数据集合中数据元素的数量计算各个子节点的节点坐标包括:
所述子节点的节点坐标的一坐标值为根节点的相应坐标值与预设偏移值的和,当所述子节点的数量为一时,所述子节点的节点坐标的另一坐标值与所述根节点的相应坐标值相同,当所述子节点的数量大于一时,所述子节点的节点坐标的另一坐标值沿所述二维区域的一侧边的邻边方向均匀分布。
4.根据权利要求1所述的方法,其特征在于,所述使根据各个数据集合生成的根节点的节点坐标相同之后还包括:
使不可见的根节点不响应任何事件。
5.一种生成多向树的装置,其特征在于,所述装置包括:
分组模块,配置用于获取待生成多向树的数据元素的方向属性,以及根据所获取的方向属性,将待生成多向树的数据元素分为至少一个数据集合,其中,同一个所述数据集合中的数据元素具有相同的方向属性,其中,方向属性用于表示数据元素相对于待生成的多向树的方向;
树节点生成模块,配置用于对各个数据集合,分别将其中的数据元素通过预设的生成模型生成具有节点坐标属性的树节点,其中,所述树节点包括根节点和子节点,所述树节点所述数据元素一一对应;
映射模块,配置用于将所述树节点的节点坐标映射为节点所属方向上的节点方向坐标;
根节点合并模块,配置用于使根据各个数据集合生成的根节点的节点坐标相同,且使仅一个根节点可见,以及根据根节点的节点坐标对每个数据集合生成的子节点的节点坐标进行平移处理,以使每个数据集合生成的子节点的相对位置保持不变;
多向树生成模块,配置用于根据所述节点方向坐标和所设置的根节点坐标,分别绘制每个数据集合的树节点和用于表现树节点间的关联关系的图形,将所述数据元素生成多向树;
其中,所述预设的生成模型包括对单个数据集合生成树节点的以下单元:根节点生成单元,配置用于生成与所述单个数据集合中的数据元素具有相同方向属性的根节点,并根据预设的展示区域的长宽数据生成所述根节点的节点坐标;子节点生成单元,配置用于对所述单个数据集合中的各个数据元素分别生成包含所述方向属性的子节点,并根据所述单个数据集合中数据元素的数量计算各个子节点的节点坐标。
6.根据权利要求5所述的装置,其特征在于,所述预设的展示区域为二维区域。
7.根据权利要求6所述的装置,其特征在于,所述根节点生成单元还配置用于:
将所述二维区域的一侧边的中点坐标作为所述根节点的节点坐标;以及
所述子节点生成单元还配置用于:
使所述子节点的节点坐标的一坐标值为根节点的相应坐标值与预设偏移值的和,当所述子节点的数量为一时,使所述子节点的节点坐标的另一坐标值与所述根节点的相应坐标值相同,当所述子节点的数量大于一时,所述子节点的节点坐标的另一坐标值沿所述二维区域的一侧边的邻边均匀分布。
8.根据权利要求5所述的装置,其特征在于,所述根节点合并模块还配置用于:
使不可见的根节点不响应任何事件。
9.一种生成多向树的装置,其特征在于,包括:
存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至4中任一项所述的生成多向树的方法。
10.一种计算机可读介质,其特征在于,所述计算机可读介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1至4中任一项所述的生成多向树的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610196045.XA CN107291725B (zh) | 2016-03-31 | 2016-03-31 | 生成多向树的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610196045.XA CN107291725B (zh) | 2016-03-31 | 2016-03-31 | 生成多向树的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291725A CN107291725A (zh) | 2017-10-24 |
CN107291725B true CN107291725B (zh) | 2020-12-22 |
Family
ID=60088070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610196045.XA Active CN107291725B (zh) | 2016-03-31 | 2016-03-31 | 生成多向树的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291725B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108616426B (zh) * | 2018-05-10 | 2020-04-10 | 瑞斯康达科技发展股份有限公司 | 一种环形网络及业务数据转发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542966A (zh) * | 2006-11-16 | 2009-09-23 | 索尼株式会社 | 信息处理装置 |
CN101989178A (zh) * | 2010-11-05 | 2011-03-23 | 北京航空航天大学 | 多叉树数据结构的立体环状可视化方法 |
CN102629271A (zh) * | 2012-03-13 | 2012-08-08 | 北京工商大学 | 一种基于堆叠树图的复杂数据可视化方法及设备 |
CN104636130A (zh) * | 2013-11-08 | 2015-05-20 | 国际商业机器公司 | 用于生成事件树的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130289945A1 (en) * | 2012-04-27 | 2013-10-31 | U.S.A. As Represented By The Administrator Of The National Aeronautics And Space Administration | System and Method for Space Utilization Optimization and Visualization |
-
2016
- 2016-03-31 CN CN201610196045.XA patent/CN107291725B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542966A (zh) * | 2006-11-16 | 2009-09-23 | 索尼株式会社 | 信息处理装置 |
CN101989178A (zh) * | 2010-11-05 | 2011-03-23 | 北京航空航天大学 | 多叉树数据结构的立体环状可视化方法 |
CN102629271A (zh) * | 2012-03-13 | 2012-08-08 | 北京工商大学 | 一种基于堆叠树图的复杂数据可视化方法及设备 |
CN104636130A (zh) * | 2013-11-08 | 2015-05-20 | 国际商业机器公司 | 用于生成事件树的方法和系统 |
Non-Patent Citations (2)
Title |
---|
Dimensionality reduction by using transductive learning and binary hierarchical trees;Hakan;《IEEE》;20150622;全文 * |
粗糙集在决策树生成中的应用;赵卫东;《东南大学学报》;20000731;第30卷(第4期);第132-137页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107291725A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674227A (zh) | 数据可视化图表和页面的生成方法、系统、介质及终端 | |
US10861234B2 (en) | Curved surface model generation method and apparatus | |
US9965843B2 (en) | Methods and systems for characterizing concept drawings and estimating three-dimensional information therefrom | |
US20120320087A1 (en) | System and Methods for Parallelizing Polygon Overlay Computation in Multiprocessing Environment | |
CN112765695B (zh) | 支撑体生成方法、3d打印机、计算机装置及存储介质 | |
CN109325259B (zh) | 一种应用于3d建模的数据处理方法、系统、终端及介质 | |
CN112991547B (zh) | 模型简化处理方法、装置以及电子设备、介质 | |
TWI475511B (zh) | 曲面網格化系統及方法 | |
Vyatkin et al. | Offsetting and blending with perturbation functions | |
CN114417064A (zh) | 数据处理方法、装置、计算机设备、存储介质 | |
Aubry et al. | A three-dimensional parametric mesher with surface boundary-layer capability | |
US10255720B1 (en) | Hybrid mesh from 2.5D and 3D point data | |
CN113129362B (zh) | 一种三维坐标数据的获取方法及装置 | |
CN107291725B (zh) | 生成多向树的方法和装置 | |
Yu et al. | Scalable parallel distance field construction for large-scale applications | |
US10930072B1 (en) | Multi-resolution mesh real-time contouring | |
US20230175858A1 (en) | Three-dimensional path display method, device, readable storage medium and electronic apparatus | |
CN110019969B (zh) | 处理半结构化数据的方法和系统 | |
CN116109767A (zh) | 三维场景的渲染方法、图像处理器、电子设备及存储介质 | |
CN108536698B (zh) | web数据三维展示方法及装置 | |
CN104835192A (zh) | 一种三维网页图形绘制方法及装置 | |
Liu et al. | Texture-cognition-based 3D building model generalization | |
Zhou et al. | Rendering interior-filled polygonal vector data in a virtual globe | |
CN103092818B (zh) | 报表的缩略图生成系统和缩略图生成方法 | |
CN111309917A (zh) | 基于会议期刊星系图的超大规模学术网络可视化方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |