CN113297262A - 数据流图的布局方法和装置 - Google Patents
数据流图的布局方法和装置 Download PDFInfo
- Publication number
- CN113297262A CN113297262A CN202110676872.XA CN202110676872A CN113297262A CN 113297262 A CN113297262 A CN 113297262A CN 202110676872 A CN202110676872 A CN 202110676872A CN 113297262 A CN113297262 A CN 113297262A
- Authority
- CN
- China
- Prior art keywords
- node
- adjacent nodes
- canvas
- determining
- target path
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000015654 memory Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 12
- 230000005484 gravity Effects 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 11
- 230000009467 reduction Effects 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013079 data visualisation Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000012847 principal component analysis method Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
- G06F16/287—Visualization; Browsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供一种数据流图的布局方法和装置,包括:根据数据流图中的各个节点,构建从数据流图的起始节点至结束节点的每一目标路径,针对任意目标路径上的两个相邻节点,计算两个相邻节点中每一节点的节点密度,并根据两个相邻节点中每一节点的节点密度,确定移动距离,其中,移动距离用于指示在两个相邻节点所处的目标路径上,调整两个相邻节点中任意节点的位置,根据移动距离对相邻节点中的任意节点的位置进行调整,避免了相关技术中采用数据降维布局法造成的收敛速度偏低的技术问题,实现了数据流图既能保持基本的网络结构和数据流向,又能尽量避免交叉的技术效果,提高了数据流图的可读性。
Description
技术领域
本公开实施例涉及计算机领域,尤其涉及一种数据流图的布局方法和装置。
背景技术
数据流图(Data Flow Diagram,DFD),是一种拓扑结构的图,可以采用图形拖拽地方式快速构建。
在构造数据流图时,往往涉及大量节点和边的绘制,节点的位置信息和边的拖拽都会影响整个数据流图的结构,在现有技术中,通常采用的数据流图的画布布局方法为数据降维布局法,如将数据流图的高维数据映射到低维空间,将数据聚类成为簇来进行布局。
然而,数据降维布局法通常用于网络结构比较复杂的数据流图,而当网络结构比较复杂时,数据流图的节点较多,收敛速度偏低。
发明内容
本公开实施例提供一种数据流图的布局方法和装置,用以解决相关技术汇总收敛速度偏低的问题。
第一方面,本公开实施例提供一种数据流图的布局方法,包括:
根据数据流图中的各个节点,构建从所述数据流图的起始节点至结束节点的每一目标路径;
针对任意目标路径上的两个相邻节点,计算所述两个相邻节点中每一节点的节点密度,并根据所述两个相邻节点中每一节点的节点密度,确定移动距离,其中,所述移动距离用于指示在所述两个相邻节点所处的目标路径上,调整所述两个相邻节点中任意节点的位置;
根据所述移动距离对所述相邻节点中的任意节点的位置进行调整。
在一些实施例中,针对任意目标路径上的两个相邻节点,计算所述两个相邻节点中每一节点的节点密度,包括:
确定所述两个相邻节点所处的目标路径上的每一节点的出度和入度,并确定所述两个相邻接节点所处的目标路径上的每一节点的位置;
根据所述两个相邻节点中的任一节点的出度和入度、所述两个相邻节点所处的目标路径上的每一节点的出度和入度、以及所述两个相邻接节点所处的目标路径上的每一节点的位置,计算得到所述两个相邻节点中的任一节点的节点密度。
在一些实施例中,根据所述两个相邻节点中的任一节点的出度和入度、所述两个相邻节点所处的目标路径上的每一节点的出度和入度、以及所述两个相邻接节点所处的目标路径上的每一节点的位置,计算得到所述两个相邻节点中的任一节点的节点密度,包括:
确定所述两个相邻节点所处的目标路径上的各个节点的出度和入度的总数量;
根据所述两个相邻接节点所处的目标路径上的各个节点的位置,确定所述两个相邻接节点所处的目标路径上的各个节点之间的平均距离,并确定所述两个相邻节点之间的相对距离;
根据所述两个相邻节点中的任一节点的出度和入度、各个节点的出度和入度的总数量、平均距离、以及相对距离,计算得到所述两个相邻节点中的任一节点的节点密度。
在一些实施例中,根据所述两个相邻节点中每一节点的节点密度,确定移动距离,包括:
根据所述两个相邻节点中每一节点的节点密度,确定所述两个相邻节点之间的引力和斥力,并根据所述引力和斥力确定所述移动距离。
在一些实施例中,根据所述两个相邻节点中每一节点的节点密度,确定所述两个相邻节点之间的引力和斥力,包括:
确定所述两个相邻节点之间的相对距离,并根据所述两个相邻节点中每一节点的节点密度、相对距离,分别确定所述引力和所述斥力。
在一些实施例中,还包括:
获取在画布上用于绘制所述数据流图的节点的光标的坐标,并确定所述画布的预设角点的坐标;
根据所述光标的坐标和所述预设角点的坐标,对所述画布的范围进行调整。
在一些实施例中,所述据所述光标的坐标和所述预设角点的坐标,对所述画布的范围进行调整,包括:
根据所述预设角点的坐标、所述画布的预设宽度,确定所述画布的右边界;
若所述光标的坐标位于所述画布的右边界之外,则调整所述画布的宽度。
在一些实施例中,调整所述画布的宽度,包括:
根据所述光标的坐标、所述预设角点的坐标、以及预设的节点的宽度,确定所述画布的调整后的宽度。
在一些实施例中,所述光标的坐标包括所述光标的横坐标,所述预设角点的坐标包括所述预设角点的横坐标;所述方法还包括:
将所述光标的横坐标与所述预设角点的横坐标之间的差值,作为所述光标对应的节点的横坐标。
在一些实施例中,所述据所述光标的坐标和所述预设角点的坐标,对所述画布的范围进行调整,包括:
根据所述预设角点的坐标、所述画布的预设高度,确定所述画布的下边界;
若所述光标的坐标位于所述画布的下边界之外,则调整所述画布的高度。
在一些实施例中,调整所述画布的高度,包括:
根据所述光标的坐标、所述预设角点的坐标、以及预设的节点的高度,确定所述画布的调整后的高度。
在一些实施例中,根据数据流图中的各个节点,构建从所述数据流图的起始节点至结束节点的每一目标路径,包括:
确定所述起始节点所连接的下一节点,并确定下一节点所连接的下一节点,依次类推,直至下一节点为所述结束节点,得到多条初始路径;
针对任意初始路径,根据所述任意初始路径中的各个节点的位置信息,确定所述任意初始路径的重心位置,并根据所述任意初始路径的重心位置,确定所述任意初始路径对应的目标路径。
第二方面,本公开实施例提供了一种数据流图的布局装置,包括:
构建单元,用于根据数据流图中的各个节点,构建从所述数据流图的起始节点至结束节点的每一目标路径;
计算单元,用于针对任意目标路径上的两个相邻节点,计算所述两个相邻节点中每一节点的节点密度;
第一确定单元,用于根据所述两个相邻节点中每一节点的节点密度,确定移动距离,其中,所述移动距离用于指示在所述两个相邻节点所处的目标路径上,调整所述两个相邻节点中任意节点的位置;
第一调整单元,用于根据所述移动距离对所述相邻节点中的任意节点的位置进行调整。
在一些实施例中,所述计算单元,包括:
第一确定子单元,用于确定所述两个相邻节点所处的目标路径上的每一节点的出度和入度,并确定所述两个相邻接节点所处的目标路径上的每一节点的位置;
计算子单元,用于根据所述两个相邻节点中的任一节点的出度和入度、所述两个相邻节点所处的目标路径上的每一节点的出度和入度、以及所述两个相邻接节点所处的目标路径上的每一节点的位置,计算得到所述两个相邻节点中的任一节点的节点密度。
在一些实施例中,所述计算子单元用于,确定所述两个相邻节点所处的目标路径上的各个节点的出度和入度的总数量;
根据所述两个相邻接节点所处的目标路径上的各个节点的位置,确定所述两个相邻接节点所处的目标路径上的各个节点之间的平均距离,并确定所述两个相邻节点之间的相对距离;
根据所述两个相邻节点中的任一节点的出度和入度、各个节点的出度和入度的总数量、平均距离、以及相对距离,计算得到所述两个相邻节点中的任一节点的节点密度。
在一些实施例中,所述第一确定单元用于,根据所述两个相邻节点中每一节点的节点密度,确定所述两个相邻节点之间的引力和斥力,并根据所述引力和斥力确定所述移动距离。
在一些实施例中,所述第一确定单元用于,确定所述两个相邻节点之间的相对距离,并根据所述两个相邻节点中每一节点的节点密度、相对距离,分别确定所述引力和所述斥力。
在一些实施例中,还包括:
获取单元,用于获取在画布上用于绘制所述数据流图的节点的光标的坐标;
第二确定单元,用于确定所述画布的预设角点的坐标;
第二调整单元,用于根据所述光标的坐标和所述预设角点的坐标,对所述画布的范围进行调整。
在一些实施例中,所述第二调整单元,包括:
第二确定子单元,用于根据所述预设角点的坐标、所述画布的预设宽度,确定所述画布的右边界;
调整子单元,用于若所述光标的坐标位于所述画布的右边界之外,则调整所述画布的宽度。
在一些实施例中,所述调整子单元用于,根据所述光标的坐标、所述预设角点的坐标、以及预设的节点的宽度,确定所述画布的调整后的宽度。
在一些实施例中,所述第二调整单元还包括:
第三确定子单元,用于将所述光标的横坐标与所述预设角点的横坐标之间的差值,作为所述光标对应的节点的横坐标。
在一些实施例中,在一些实施例中,所述第二调整单元,包括:
第二确定子单元,用于根据所述预设角点的坐标、所述画布的预设高度,确定所述画布的下边界;
调整子单元,用于若所述光标的坐标位于所述画布的下边界之外,则调整所述画布的高度。
在一些实施例中,所述调整子单元用于,根据所述光标的坐标、所述预设角点的坐标、以及预设的节点的高度,确定所述画布的调整后的高度。
在一些实施例中,所述构建单元包括:
第四确定子单元,用于确定所述起始节点所连接的下一节点,并确定下一节点所连接的下一节点,依次类推,直至下一节点为所述结束节点,得到多条初始路径;
第五确定子单元,用于针对任意初始路径,根据所述任意初始路径中的各个节点的位置信息,确定所述任意初始路径的重心位置,并根据所述任意初始路径的重心位置,确定所述任意初始路径对应的目标路径。
第三方面,本公开实施例还提供了一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如第一方面所述的方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
第五方面,本公开实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的方法。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本公开一个实施例的数据流图的布局方法的示意图;
图2为本公开另一实施例的数据流图的布局方法的示意图;
图3为本公开数据流图的节点示意图;
图4为本公开数据流图的目标路径的示意图;
图5为本公开一个实施例的数据流图的布局装置的示意图;
图6为本公开另一实施例的数据流图的布局装置的示意图;
图7为本公开实施例的数据流图的布局方法的电子设备的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
对本公开实施例所涉及的名词进行解释如下:
数据流图:是指指从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
节点密度:是指节点在路径(如本公开中的目标路径)中的位置的密集程度。
节点的出度:是指从该节点出发的边的条数。
节点的入度:是指从其他节点指向该节点的边的条数。
画布:一般指绘图的区域,此处指数据流图的绘制区域。
结合上述描述可知,数据流图,是指从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
其中,数据流图是一种拓扑结构的图,可以采用图形拖拽地方式快速构建。且在构造数据流图时,往往涉及大量节点和边的绘制,节点的位置信息和边的拖拽都会影响整个数据流图的结构。
例如,在审计业务场景中,用户(如工作人员)常常需要使用一种以图形拖拽方式进行快速建模的工具,该工具将审计账表和数据集(如Spark)算子作为建模分析的节点,以数据的流向作为边,构造出数据处理的一种流程,这种基于业务场景构造出来的可视化数据流程就是一个数据流图。
在数据流图的绘制过程中,节点的拖拽和摆放往往比较随意,当数据量很大,即存在大量的节点时,数据流图的图结构很复杂,则会产生数据流图的布局混乱,数据流图的可读性差的技术问题。
在现有技术中,通常采用的数据流图的画布布局方法为数据降维布局法,如将数据流图的高维数据映射到低维空间,将数据聚类成为簇来进行布局。
示例性地,数据降维布局法可以采用不同的数据降维算法实现,数据降维算法可以包括:主成分分析、等距映射、局部线性嵌入和无监督学习(t-distributed stochasticneighbor embedding,t-SNE)算法等。
这些算法一般用于网络结构比较复杂的情况下的数据可视化,通过将高维数据映射到低维空间,将数据聚类成为簇来进行展示。其中,主成分分析法由于无法解决线性不可分问题应用较少,t-SNE算法被大量应用于复杂网络的数据可视化分析中。
然而,数据降维布局法通常用于网络结构比较复杂的数据流图,而当网络结构比较复杂时,数据流图的节点较多,收敛速度偏低的技术问题。
为了解决上述技术问题中的至少一种,本公开的发明人经过创造性地劳动,得到了本公开的发明构思:构建数据流图的各路径,针对每一路径,计算该路径中的任意两相邻节点中每一节点的节点密度,并根据两个节点密度确定调整节点的移动距离,以便基于该移动距离对节点的位置进行调整。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
请参阅图1,图1为本公开一个实施例的数据流图的布局方法的示意图。
如图1所示,该方法包括:
S101:根据数据流图中的各个节点,构建从数据流图的起始节点至结束节点的每一目标路径。
示例性地,本实施例的执行主体可以为数据流图的布局装置(下文简称布局装置),且布局装置可以为服务器,也可以为终端设备,也可以为处理器,也可以为芯片等,本实施例不做限定。
应该理解地是,目标路径中的“目标”用于与后文中的初始路径进行区分,而不能理解为对目标路径地限定。
数据流图中包括多个节点,且一般包括一个起始节点和一个结束节点,该步骤可以理解为:布局装置基于各个节点确定多条目标路径,每一目标路径以起始节点为起点,以结束节点为终点,起点与终点之间包括至少一个节点(即除起始节点和结束节点以外的节点)。
S102:针对任意目标路径上的两个相邻节点,计算两个相邻节点中每一节点的节点密度,并根据两个相邻节点中每一节点的节点密度,确定移动距离。
其中,移动距离用于指示在两个相邻节点所处的目标路径上,调整两个相邻节点中任意节点的位置。
示例性地,若第一节点和第二节点为某目标路径上的两个相邻节点,则布局装置可以计算第一节点的节点密度,并计算第二节点的节点密度,以便根据第一节点的节点密度和第二节点的节点密度,确定移动距离。
S103:根据移动距离对相邻节点中的任意节点的位置进行调整。
结合上述分析,布局装置可以在第一节点所属的目标路径上,根据移动距离调整第一节点的位置;和/或,布局装置可以在第二节点所属的目标路径上,根据移动距离调整第二节点的位置。
基于上述分析可知,本公开实施例提供了一种数据流图的布局方法,包括:根据数据流图中的各个节点,构建从数据流图的起始节点至结束节点的每一目标路径,针对任意目标路径上的两个相邻节点,计算两个相邻节点中每一节点的节点密度,并根据两个相邻节点中每一节点的节点密度,确定移动距离,其中,移动距离用于指示在两个相邻节点所处的目标路径上,调整两个相邻节点中任意节点的位置,根据移动距离对相邻节点中的任意节点的位置进行调整,在本实施例中,引入了:构建数据流图的各目标路径,通过计算任意目标路径上的两个相邻节点中,每一节点的节点密度,并基于两个相邻节点中的每一节点的节点密度确定移动距离,以便基于移动距离在任意目标路径上调整两个相邻节点中任意节点的位置的特征,一方面,避免了相关技术中采用数据降维布局法造成的收敛速度偏低的技术问题,实现了提高对数据流图布局的效率;另一方面,通过在任意目标路径内对节点的位置进行调整,实现了数据流图既能保持基本的网络结构和数据流向,又能尽量避免交叉,提高了数据流图的可读性;再一方面,通过基于移动距离在任意目标路径上调整两个相邻节点中任意节点的位置,可以使得各目标路径间的节点更加离散,而目标路径内的节点更加聚集,提高了对画布资源的利用率,进一步提高了数据流图的可读性;还一方面,无需用户设置用于布局的初始节点,可以提高数据流图的配置的灵活性。
请参阅图2,图2为本公开另一实施例的数据流图的布局方法的示意图。
如图2所示,该方法包括:
S201:获取在画布上用于绘制数据流图的节点的光标的坐标,并确定画布的预设角点的坐标。
在本实施例中,可以采用绝对定位CSS对数据流图中的节点进行布局。其中,绝对定位使得数据流图中的各节点的位置与文档流无关,节点的横坐标是节点左上角相对于画布左上角的横向距离,节点的纵坐标是节点左上角相对于画布左上角的纵向距离。
示例性地,当用户(如工作人员,即绘制数据流图的工作人员)拖拽节点时,将光标放置在即将拖拽的节点上,拖拽结束时释放鼠标,记录此时节点的光标的坐标,即为光标在笛卡尔坐标系(Cartesian coordinate system)中的坐标(x,y)。
预设角点的坐标是指画布左上角在笛卡尔坐标系中的坐标(x',y')。
具体地,x是节点的光标相对于坐标系(即画布坐标系)原点的横向距离,y是节点的光标相对于坐标系原点的纵向距离,x'是画布左上角相对于坐标系原点的横向距离,y'是画布左上角相对于坐标系原点的纵向距离。
其中,笛卡尔坐标系也称直角坐标系,是一种正交坐标系。在Web页面中,也有相应的坐标系统。在笛卡尔坐标系中,原点位于展示笛卡尔坐标系的对象(如浏览器等)的左上角。整个浏览器屏幕就是第一象限,表现上只有正值,负值都隐藏了起来。无论是平面坐标还是三维坐标都是如此,只不过由于浏览器屏幕是个平面,所以三维坐标中的Z轴是贯穿浏览器的。
S202:根据光标的坐标和预设角点的坐标,对画布的范围进行调整。
结合上述示例,在确定出光标的坐标(x,y)和预设角点的坐标(x',y')时,可以基于光标的坐标(x,y)和预设角点的坐标(x',y'),对画布的范围进行调整。
值得说明地是,在相关技术中,用户通过缩放功能来展示画布,这种方法无法解决画布大小不够的问题,而通过缩小节点的尺寸来实现缩放布局和展示拓扑图容易导致节点信息不可读,且因画布较小造成的无法布局所有节点,部分节点无法被布局的弊端,而在本实施例中,通过结合节点在拖拽过程,对画布的范围进行适应性地动态调整,可以避免相关技术中通过缩放造成的上述技术问题,可以提高对数据流图的布局的灵活性和多样性,且提高了数据流图的完整性和可读性。
在一些实施例中,S202可以包括如下步骤:
第一步骤:根据预设角点的坐标、画布的预设宽度,确定画布的右边界。
第二步骤:若光标的坐标位于画布的右边界之外,则调整画布的宽度。
示例性地,预设角点的坐标包括预设角点的横坐标和预设角点的纵坐标,画布的右边界是基于预设角点的横坐标、以及画布的预设宽度确定的。
例如,画布的右边界=预设角点的横坐标+画布的预设宽度,若画布的预设宽度为wcanvas,则画布的右边界=x'+wcanvas。
在确定出画布的右边界之后,布局装置可以确定光标的坐标是否位于画布的右边界之外,即光标的坐标是否超出画布的右边界,如果光标的坐标已经超出画布的右边界,则对画布的宽度进行调整。
示例性地,若x>x'+wcanvas,则说明光标的坐标已经超出画布的右边界,则对画布的宽度进行增加,从而实现对画布的自适应性调整,提高数据流图布局的准确性和可靠性的技术效果。
在一些实施例中,第二步骤可以包括:根据光标的坐标、预设角点的坐标、以及预设的节点的宽度,确定画布的调整后的宽度。
例如,节点的宽度为wnode,画布的调整后的宽度w”=x-x'+wnode。
值得说明地是,在本实施例中,通过基于光标的坐标、预设角点的坐标、以及预设的节点的宽度,确定画布的调整后的宽度,可以使得画布的调整后的宽度与数据流图的节点之间具有高度的贴合,避免了过度增加画布的宽度而导致的资源浪费的弊端,提高了画布的调整后的宽度的适用性和准确性的技术效果。
在一些实施例中,光标的坐标包括光标的横坐标,预设角点的坐标包括预设角点的横坐标,可以将光标的横坐标与预设角点的横坐标之间的差值,作为光标对应的节点的横坐标。
示例性地,节点的横坐标left=x-x'。
在另一些实施例中,若光标的坐标超出画布的左边界,但是没有超出画布的右边界,即x'<x<x'+wcanvas,则无需对画布的宽度进行调整,即画布的宽度仍然是wcanvas,而节点的横坐标left=x-x'。
在另一些实施例中,若光标的坐标没有超出画布的左边界,即x<x',也无需对画布的宽度进行调整,即画布的宽度仍然是wcanvas,而节点的横坐标left=0。
基于上述分析可知,布局装置可以对画布的宽度进行调整,在另一些实施例中,布局装置还可以对画布的高度进行调整,其中,布局装置对画布的高度的调整可以包括如下步骤:
第一步骤:根据预设角点的坐标、画布的预设高度,确定画布的下边界。
第二步骤:若光标的坐标位于画布的下边界之外,则调整画布的高度。
示例性地,预设角点的坐标包括预设角点的横坐标和预设角点的纵坐标,画布的右边界是基于预设角点的纵坐标、以及画布的预设高度确定的。
例如,画布的下边界=预设角点的纵坐标+画布的预设高度,若画布的预设宽度为hcanvas,则画布的下边界=y'+hcanvas。
在确定出画布的下边界之后,布局装置可以确定光标的坐标是否位于画布的下边界之外,即光标的坐标是否超出画布的下边界,如果光标的坐标已经超出画布的下边界,则对画布的高度进行调整。
同理,若y>y'+hcanvas,则说明光标的坐标已经超出画布的下边界,则对画布的高度进行增加,从而实现对画布的自适应性调整,提高数据流图布局的准确性和可靠性的技术效果。
在一些实施例中,第二步骤可以包括:根据光标的坐标、预设角点的坐标、以及预设的节点的高度,确定画布的调整后的高度。
例如,节点的高度为hnode,画布的调整后的高度h”=y-y'+hnode。
同理,在本实施例中,通过基于光标的坐标、预设角点的坐标、以及预设的节点的高度,确定画布的调整后的高度,可以使得画布的调整后的高度与数据流图的节点之间具有高度的贴合,避免了过度增加画布的高度而导致的资源浪费的弊端,提高了画布的调整后的高度的适用性和准确性的技术效果。
在一些实施例中,光标的坐标包括光标的纵坐标,预设角点的坐标包括预设角点的纵坐标,可以将光标的纵坐标与预设角点的纵坐标之间的差值,作为光标对应的节点的纵坐标。
示例性地,节点的纵坐标top=y-y'。
在另一些实施例中,若光标的坐标超出画布的上边界,但是没有超出画布的下边界,即y'<y<y'+hcanvas,则无需对画布的高度进行调整,即画布的高度仍然是hcanvas,而节点的横坐标top=y-y'。
在另一些实施例中,若光标的坐标没有超出画布的上边界,即y<y',也无需对画布的高度进行调整,即画布的宽度仍然是hcanvas,而节点的横坐标top=0。
结合上述分析可知,在本实施例中,每个节点使用与画布的相对位置,一个记录了横、纵坐标的二元组来标记,使得每条目标路径保存为一个完整的向量。这种表示方法记录了数据流图中的数据流方向,可以确保数据流图的数据流向不变的技术效果。
S203:确定起始节点所连接的下一节点,并确定下一节点所连接的下一节点,依次类推,直至下一节点为结束节点,得到多条初始路径。
S204:针对任意初始路径,根据任意初始路径中的各个节点的位置信息,确定任意初始路径的重心位置,并根据任意初始路径的重心位置,确定任意初始路径对应的目标路径。
在基于S201至S202的方法绘制得到数据流图中的各个节点之后,可以确定数据流图的多条目标路径。
示例性地,若数据流图中的每个节点与画布的相对位置(left,top)以及位置序列为[(left1,top1),(left2,top2),...,(leftn,topn)]。
如图3所示,数据流图中共包括9个节点,开始节点为(left0,top0),结束节点为(leftn,topn),开始节点和结束节点为公共节点,即每一初始路径或目标路径中均包括开始节点和结束节点。
在如图3所示的数据流图中,共包括4条初始路径,分别为:
初始路径1:开始节点→流程节点1→流程节点3→流程节点7→结束节点,通过位置表示为:
[(left0,top0),(left1,top1),(left3,top3),(left7,top7),(leftn,topn)];
初始路径2:开始节点→流程节点2→流程节点7→结束节点,通过位置表示为:
[(left0,top0),(left2,top2),(left7,top7),(leftn,topn)];
初始路径3:开始节点→流程节点5→流程节点7→结束节点,通过位置表示为:
[(left0,top0),(left5,top5),(left7,top7),(leftn,topn)];
初始路径4:开始节点→流程节点4→流程节点6→流程节点7→结束节点,通过位置表示为:
[(left0,top0),(left1,top1),(left4,top4),(left6,top6),(left7,top7),(leftn,topn)]。
其中,m表示任意初始路径中的节点个数。
示例性地,图3所对应的目标路径可以参阅图4。
在一些实施例中,在确定出任意初始路径的重心位置之后,可以根据重心位置对任意初始路径进行高低排序,按照高低排序将任意初始路径上的各节点以重心位置为(left,top)参照进行顶端对齐,从而得到与任意初始路径对应的目标路径。
值得说明地是,若某一节点属于不同的初始路径,则只对该节点进行首次顶端对齐。
值得说明地是,在本实施例中,通过从起始节点开始,依次连接下一节点,直至结束节点,从而得到多条初始路径,并在此基础上确定重心位置,以便基于重心位置对每一初始路径中的各节点进行顶端对齐处理,从而得到目标路径,可以实现得到目标路径的准确性和可靠性的技术效果,并通过将各节点转换为簇内(一条目标路径相当于一个簇)节点,以便后续基于对簇内各节点的调整,实现对数据流图的布局,可以提高数据流图布局的灵活性和可靠性的技术效果。
S205:针对任意目标路径上的两个相邻节点,计算两个相邻节点中每一节点的节点密度,并根据两个相邻节点中每一节点的节点密度,确定移动距离。
其中,移动距离用于指示在两个相邻节点所处的目标路径上,调整两个相邻节点中任意节点的位置。
示例性地,关于S205地描述,可以参见上一实施例,此处不再赘述。
在一些实施例中,针对任意目标路径上的两个相邻节点,计算两个相邻节点中每一节点的节点密度,包括如下步骤:
第一步骤:确定两个相邻节点所处的目标路径上的每一节点的出度和入度,并确定两个相邻接节点所处的目标路径上的每一节点的位置。
第二步骤:根据两个相邻节点中的任一节点的出度和入度、两个相邻节点所处的目标路径上的每一节点的出度和入度、以及两个相邻接节点所处的目标路径上的每一节点的位置,计算得到两个相邻节点中的任一节点的节点密度。
例如,若某目标路径共包括n个节点,两个相邻节点中的一个节点为第一节点,则可以根据第一节点的出度入度、n个节点中的每一节点的出度和入度、n个节点中的每一节点的位置,确定第一节点的节点密度。
相应地,可以根据第二节点的出度入度、n个节点中的每一节点的出度和入度、n个节点中的每一节点的位置,确定第一节点的节点密度。
值得说明地是,在本实施例中,通过基于两个相邻节点所处的目标路径上的每一节点的出度和入度,两个相邻节点所处的目标路径上的每一节点的位置,确定两个相邻节点中每一节点的节点密度,可以使得节点的节点密度与节点所处的目标路径之间具有高度的关联,使得节点密度具有较高的可靠性和准确性的技术效果。
在一些实施例中,第二步骤可以包括如下子步骤:
第一子步骤:确定两个相邻节点所处的目标路径上的各个节点的出度和入度的总数量。
第二子步骤:根据两个相邻接节点所处的目标路径上的各个节点的位置,确定两个相邻接节点所处的目标路径上的各个节点之间的平均距离,并确定两个相邻节点之间的相对距离。
第三子步骤:根据两个相邻节点中的任一节点的出度和入度、各个节点的出度和入度的总数量、平均距离、以及相对距离,计算得到两个相邻节点中的任一节点的节点密度。
示例性地,两个相邻节点中的一个节点为第一节点,第一节点的入度为λo,第一节点的出度为λo,第一节点所处的目标路径的所有节点(也包括第一节点)的入度和出度之和为λ,第一节点所处的目标路径的所有节点之间的平均距离为dc,两个相邻节点中的另一节点为第二节点,第一节点和第二节点之间的距离(即相对距离)为dij,则第一节点的节点密度ρi可以通过式1表示,式1:
同理,也可以基于上述方法得到第二节点的节点密度,此处不再赘述。
值得说明地是,在本实施例中,通过结合各节点的出度和入度、平均距离、以及相对距离,确定两个相邻节点中每一节点的节点密度,可以使得节点密度具有较高的准确性和可靠性的技术效果。
在一些实施例中,根据两个相邻节点中每一节点的节点密度,确定移动距离可以包括:根据两个相邻节点中每一节点的节点密度,确定两个相邻节点之间的引力和斥力,并根据引力和斥力确定移动距离。
值得说明地是,在本实施例中,两个相邻节点之间的引力和斥力可以表征两个相邻节点之间的吸引与排斥的相互作用关系,而通过基于引力和斥力确定移动距离,充分考虑了两个相邻节点之间的移动可能性,从而可以使得移动距离具有较高的准确性和可靠性的技术效果。
在一些实施例中,根据两个相邻节点中每一节点的节点密度,确定两个相邻节点之间的引力和斥力:确定两个相邻节点之间的相对距离,并根据两个相邻节点中每一节点的节点密度、相对距离,分别确定引力和斥力。
示例性地,结合上述示例,若两个相邻节点包括第一节点和第二节点,第一节点的节点密度为ρi,第二节点的节点密度为ρj,相对距离(即第一节点与第二节点之间的距离)为dij,则第一节点与第二节点之间的引力Fin可以通过式2表示,式2:
第一节点与第二节点之间的斥力可以通过式3表示,式3:
在一些实施例中,根据引力和斥力确定移动距离可以包括:根据引力和斥力确定合力,并根据合力确定移动距离。
示例性地,合力可以通过式4表示,式4:
F=Fin+αFout
其中,α为预设的实验参数。
在一些实施例中,可以对引力和斥力分别进行归一化处理,如分别得到零至一之内的值,并基于归一化处理后引力和斥力确定合力,以避免节点受力不均衡且不容易达到稳定状态的弊端,提高确定出的合力的准确性和可靠性的技术效果。
示例性地,可以通过式5表示移动距离,式5:
其中,t为预设的实验参数。
S206:根据移动距离对相邻节点中的任意节点的位置进行调整。
示例性地,关于S206地描述,可以参见上述实施例,此处不再赘述。
需要说明地是,在一些实施例中,画布的调整可以为单独的实施例,节点的位置调整也可以为单独的实施例,也可以如图2所示,将画布的调整的实施例,与节点的位置调整的实施例,组合成一个实施例,本实施例不做限定。
根据本公开实施例的另一个方面,本公开实施例还提供了一种数据流图的布局装置。
请参阅图5,图5为本公开一个实施例的数据流图的布局装置的示意图。
如图5所示,数据流图的布局装置500包括:
构建单元501,用于根据数据流图中的各个节点,构建从所述数据流图的起始节点至结束节点的每一目标路径。
计算单元502,用于针对任意目标路径上的两个相邻节点,计算所述两个相邻节点中每一节点的节点密度。
第一确定单元503,用于根据所述两个相邻节点中每一节点的节点密度,确定移动距离,其中,所述移动距离用于指示在所述两个相邻节点所处的目标路径上,调整所述两个相邻节点中任意节点的位置。
第一调整单元504,用于根据所述移动距离对所述相邻节点中的任意节点的位置进行调整。
请参阅图6,图6为本公开另一实施例的数据流图的布局装置的示意图。
如图6所示,数据流图的布局装置600包括:
获取单元601,用于获取在画布上用于绘制所述数据流图的节点的光标的坐标。
第二确定单元602,用于确定所述画布的预设角点的坐标。
第二调整单元603,用于根据所述光标的坐标和所述预设角点的坐标,对所述画布的范围进行调整。
结合图6可知,在一些实施例中,第二调整单元603,包括:
第二确定子单元6031,用于根据所述预设角点的坐标、所述画布的预设宽度,确定所述画布的右边界。
调整子单元6032,用于若所述光标的坐标位于所述画布的右边界之外,则调整所述画布的宽度。
在一些实施例中,所述调整子单元6032用于,根据所述光标的坐标、所述预设角点的坐标、以及预设的节点的宽度,确定所述画布的调整后的宽度。
第三确定子单元6033,用于将所述光标的横坐标与所述预设角点的横坐标之间的差值,作为所述光标对应的节点的横坐标。
在另一些实施例中,第二确定子单元6031,用于根据所述预设角点的坐标、所述画布的预设高度,确定所述画布的下边界。
调整子单元6032,用于若所述光标的坐标位于所述画布的下边界之外,则调整所述画布的高度。
在一些实施例中,所述调整子单元6032用于,根据所述光标的坐标、所述预设角点的坐标、以及预设的节点的高度,确定所述画布的调整后的高度。
构建单元604,用于根据数据流图中的各个节点,构建从所述数据流图的起始节点至结束节点的每一目标路径。
结合图6可知,在一些实施例中,构建单元604,包括:
第四确定子单元6041,用于确定所述起始节点所连接的下一节点,并确定下一节点所连接的下一节点,依次类推,直至下一节点为所述结束节点,得到多条初始路径。
第五确定子单元6042,用于针对任意初始路径,根据所述任意初始路径中的各个节点的位置信息,确定所述任意初始路径的重心位置,并根据所述任意初始路径的重心位置,确定所述任意初始路径对应的目标路径。
计算单元605,用于针对任意目标路径上的两个相邻节点,计算所述两个相邻节点中每一节点的节点密度。
结合图6可知,在一些实施例中,计算单元605,包括:
第一确定子单元6051,用于确定所述两个相邻节点所处的目标路径上的每一节点的出度和入度,并确定所述两个相邻接节点所处的目标路径上的每一节点的位置。
计算子单元6052,用于根据所述两个相邻节点中的任一节点的出度和入度、所述两个相邻节点所处的目标路径上的每一节点的出度和入度、以及所述两个相邻接节点所处的目标路径上的每一节点的位置,计算得到所述两个相邻节点中的任一节点的节点密度。
在一些实施例中,计算子单元6052用于,确定所述两个相邻节点所处的目标路径上的各个节点的出度和入度的总数量,根据所述两个相邻接节点所处的目标路径上的各个节点的位置,确定所述两个相邻接节点所处的目标路径上的各个节点之间的平均距离,并确定所述两个相邻节点之间的相对距离,根据所述两个相邻节点中的任一节点的出度和入度、各个节点的出度和入度的总数量、平均距离、以及相对距离,计算得到所述两个相邻节点中的任一节点的节点密度。
第一确定单元606,用于根据所述两个相邻节点中每一节点的节点密度,确定移动距离,其中,所述移动距离用于指示在所述两个相邻节点所处的目标路径上,调整所述两个相邻节点中任意节点的位置。
在一些实施例中,所述第一确定单元606用于,根据所述两个相邻节点中每一节点的节点密度,确定所述两个相邻节点之间的引力和斥力,并根据所述引力和斥力确定所述移动距离。
在一些实施例中,所述第一确定单元606用于,确定所述两个相邻节点之间的相对距离,并根据所述两个相邻节点中每一节点的节点密度、相对距离,分别确定所述引力和所述斥力。
第一调整单元607,用于根据所述移动距离对所述相邻节点中的任意节点的位置进行调整。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
根据本公开的实施例,本公开还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
如图7所示,是根据本公开实施例的数据流图的布局方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器701为例。
存储器702即为本公开所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本公开所提供的数据流图的布局方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的数据流图的布局方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的数据流图的布局方法对应的程序指令/模块。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的数据流图的布局方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据流图的布局方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至数据流图的布局方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
数据流图的布局方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与数据流图的布局方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (16)
1.一种数据流图的布局方法,包括:
根据数据流图中的各个节点,构建从所述数据流图的起始节点至结束节点的每一目标路径;
针对任意目标路径上的两个相邻节点,计算所述两个相邻节点中每一节点的节点密度,并根据所述两个相邻节点中每一节点的节点密度,确定移动距离,其中,所述移动距离用于指示在所述两个相邻节点所处的目标路径上,调整所述两个相邻节点中任意节点的位置;
根据所述移动距离对所述相邻节点中的任意节点的位置进行调整。
2.根据权利要求1所示的方法,其中,针对任意目标路径上的两个相邻节点,计算所述两个相邻节点中每一节点的节点密度,包括:
确定所述两个相邻节点所处的目标路径上的每一节点的出度和入度,并确定所述两个相邻接节点所处的目标路径上的每一节点的位置;
根据所述两个相邻节点中的任一节点的出度和入度、所述两个相邻节点所处的目标路径上的每一节点的出度和入度、以及所述两个相邻接节点所处的目标路径上的每一节点的位置,计算得到所述两个相邻节点中的任一节点的节点密度。
3.根据权利要求2所示的方法,其中,根据所述两个相邻节点中的任一节点的出度和入度、所述两个相邻节点所处的目标路径上的每一节点的出度和入度、以及所述两个相邻接节点所处的目标路径上的每一节点的位置,计算得到所述两个相邻节点中的任一节点的节点密度,包括:
确定所述两个相邻节点所处的目标路径上的各个节点的出度和入度的总数量;
根据所述两个相邻接节点所处的目标路径上的各个节点的位置,确定所述两个相邻接节点所处的目标路径上的各个节点之间的平均距离,并确定所述两个相邻节点之间的相对距离;
根据所述两个相邻节点中的任一节点的出度和入度、各个节点的出度和入度的总数量、平均距离、以及相对距离,计算得到所述两个相邻节点中的任一节点的节点密度。
4.根据权利要求1所示的方法,其中,根据所述两个相邻节点中每一节点的节点密度,确定移动距离,包括:
根据所述两个相邻节点中每一节点的节点密度,确定所述两个相邻节点之间的引力和斥力,并根据所述引力和斥力确定所述移动距离。
5.根据权利要求4所示的方法,其中,根据所述两个相邻节点中每一节点的节点密度,确定所述两个相邻节点之间的引力和斥力,包括:
确定所述两个相邻节点之间的相对距离,并根据所述两个相邻节点中每一节点的节点密度、相对距离,分别确定所述引力和所述斥力。
6.根据权利要求1至5中任一项所示的方法,还包括:
获取在画布上用于绘制所述数据流图的节点的光标的坐标,并确定所述画布的预设角点的坐标;
根据所述光标的坐标和所述预设角点的坐标,对所述画布的范围进行调整。
7.根据权利要求6所示的方法,其中,所述据所述光标的坐标和所述预设角点的坐标,对所述画布的范围进行调整,包括:
根据所述预设角点的坐标、所述画布的预设宽度,确定所述画布的右边界;
若所述光标的坐标位于所述画布的右边界之外,则调整所述画布的宽度。
8.根据权利要求7所示的方法,其中,调整所述画布的宽度,包括:
根据所述光标的坐标、所述预设角点的坐标、以及预设的节点的宽度,确定所述画布的调整后的宽度。
9.根据权利要求7所示的方法,其中,所述光标的坐标包括所述光标的横坐标,所述预设角点的坐标包括所述预设角点的横坐标;所述方法还包括:
将所述光标的横坐标与所述预设角点的横坐标之间的差值,作为所述光标对应的节点的横坐标。
10.根据权利要求6所示的方法,其中,所述据所述光标的坐标和所述预设角点的坐标,对所述画布的范围进行调整,包括:
根据所述预设角点的坐标、所述画布的预设高度,确定所述画布的下边界;
若所述光标的坐标位于所述画布的下边界之外,则调整所述画布的高度。
11.根据权利要求10所示的方法,其中,调整所述画布的高度,包括:
根据所述光标的坐标、所述预设角点的坐标、以及预设的节点的高度,确定所述画布的调整后的高度。
12.根据权利要求1至5中任一项所示的方法,其中,根据数据流图中的各个节点,构建从所述数据流图的起始节点至结束节点的每一目标路径,包括:
确定所述起始节点所连接的下一节点,并确定下一节点所连接的下一节点,依次类推,直至下一节点为所述结束节点,得到多条初始路径;
针对任意初始路径,根据所述任意初始路径中的各个节点的位置信息,确定所述任意初始路径的重心位置,并根据所述任意初始路径的重心位置,确定所述任意初始路径对应的目标路径。
13.一种数据流图的布局装置,包括:
构建单元,用于根据数据流图中的各个节点,构建从所述数据流图的起始节点至结束节点的每一目标路径;
计算单元,用于针对任意目标路径上的两个相邻节点,计算所述两个相邻节点中每一节点的节点密度;
第一确定单元,用于根据所述两个相邻节点中每一节点的节点密度,确定移动距离,其中,所述移动距离用于指示在所述两个相邻节点所处的目标路径上,调整所述两个相邻节点中任意节点的位置;
第一调整单元,用于根据所述移动距离对所述相邻节点中的任意节点的位置进行调整。
14.一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1至12中任一项所述的方法。
15.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至12中任一项所述的方法。
16.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110676872.XA CN113297262A (zh) | 2021-06-18 | 2021-06-18 | 数据流图的布局方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110676872.XA CN113297262A (zh) | 2021-06-18 | 2021-06-18 | 数据流图的布局方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297262A true CN113297262A (zh) | 2021-08-24 |
Family
ID=77328674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110676872.XA Pending CN113297262A (zh) | 2021-06-18 | 2021-06-18 | 数据流图的布局方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297262A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704943A (zh) * | 2021-09-10 | 2021-11-26 | 京东科技信息技术有限公司 | 节点拓扑图布局方法及装置、计算机存储介质、电子设备 |
CN114111815A (zh) * | 2021-11-01 | 2022-03-01 | 广州小鹏自动驾驶科技有限公司 | 一种地图数据的处理方法和装置 |
CN116109414A (zh) * | 2023-02-14 | 2023-05-12 | 中国科学院软件研究所 | 一种基于力作用的资金交易桑基图可视化布局方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170045363A1 (en) * | 2015-08-12 | 2017-02-16 | Fujitsu Limited | Path graph generation method, path graph generation device and storage medium |
US10248385B1 (en) * | 2017-11-30 | 2019-04-02 | International Business Machines Corporation | Extracting mobile application workflow from design files |
CN110377669A (zh) * | 2019-07-19 | 2019-10-25 | 合肥工业大学 | 家谱图中的两位人物节点间路径查询方法及装置 |
CN110795093A (zh) * | 2018-08-01 | 2020-02-14 | 北京京东尚科信息技术有限公司 | 一种交互式视图生成方法和装置 |
CN112534401A (zh) * | 2018-05-30 | 2021-03-19 | 起元技术有限责任公司 | 用于数据流图优化的系统和方法 |
CN112567394A (zh) * | 2018-08-16 | 2021-03-26 | 甲骨文国际公司 | 用于在有限的知识领域中构建知识图的技术 |
CN112729323A (zh) * | 2019-10-28 | 2021-04-30 | 北京四维图新科技股份有限公司 | 路径规划方法及设备 |
-
2021
- 2021-06-18 CN CN202110676872.XA patent/CN113297262A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170045363A1 (en) * | 2015-08-12 | 2017-02-16 | Fujitsu Limited | Path graph generation method, path graph generation device and storage medium |
US10248385B1 (en) * | 2017-11-30 | 2019-04-02 | International Business Machines Corporation | Extracting mobile application workflow from design files |
CN112534401A (zh) * | 2018-05-30 | 2021-03-19 | 起元技术有限责任公司 | 用于数据流图优化的系统和方法 |
CN110795093A (zh) * | 2018-08-01 | 2020-02-14 | 北京京东尚科信息技术有限公司 | 一种交互式视图生成方法和装置 |
CN112567394A (zh) * | 2018-08-16 | 2021-03-26 | 甲骨文国际公司 | 用于在有限的知识领域中构建知识图的技术 |
CN110377669A (zh) * | 2019-07-19 | 2019-10-25 | 合肥工业大学 | 家谱图中的两位人物节点间路径查询方法及装置 |
CN112729323A (zh) * | 2019-10-28 | 2021-04-30 | 北京四维图新科技股份有限公司 | 路径规划方法及设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704943A (zh) * | 2021-09-10 | 2021-11-26 | 京东科技信息技术有限公司 | 节点拓扑图布局方法及装置、计算机存储介质、电子设备 |
CN113704943B (zh) * | 2021-09-10 | 2024-04-05 | 京东科技信息技术有限公司 | 节点拓扑图布局方法及装置、计算机存储介质、电子设备 |
CN114111815A (zh) * | 2021-11-01 | 2022-03-01 | 广州小鹏自动驾驶科技有限公司 | 一种地图数据的处理方法和装置 |
CN114111815B (zh) * | 2021-11-01 | 2023-02-03 | 广州小鹏自动驾驶科技有限公司 | 一种地图数据的处理方法和装置 |
CN116109414A (zh) * | 2023-02-14 | 2023-05-12 | 中国科学院软件研究所 | 一种基于力作用的资金交易桑基图可视化布局方法 |
CN116109414B (zh) * | 2023-02-14 | 2023-10-24 | 中国科学院软件研究所 | 一种基于力作用的资金交易桑基图可视化布局方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110476188B (zh) | 集中式渲染 | |
CN113297262A (zh) | 数据流图的布局方法和装置 | |
KR20060052717A (ko) | 가상 데스크 탑, 프로그램 예의 배열을 리콜링하는 방법, 애플리케이션 예를 관리하는 방법 및 애플리케이션을 관리하는 방법 | |
CN113377520A (zh) | 资源调度方法、装置、设备以及存储介质 | |
US10675538B2 (en) | Program, electronic device, system, and method for determining resource allocation for executing rendering while predicting player's intent | |
CN109388458A (zh) | 界面控件的管理方法、终端设备及计算机可读存储介质 | |
CN113658339B (zh) | 一种基于等高线的三维实体生成方法及装置 | |
CN111967297A (zh) | 图像的语义分割方法、装置、电子设备及介质 | |
CN110807379A (zh) | 一种语义识别方法、装置、以及计算机存储介质 | |
CN111966361A (zh) | 用于确定待部署模型的方法、装置、设备及其存储介质 | |
US20140331145A1 (en) | Enhancing a remote desktop with meta-information | |
Jin et al. | Towards autonomic data management for staging-based coupled scientific workflows | |
US20100318655A1 (en) | Concurrent Processing With Untrusted Beings | |
CN111966767B (zh) | 轨迹热力图生成方法、装置、电子设备和存储介质 | |
US20220075026A1 (en) | Lidar map-based loop detection method, device, and medium | |
US9563723B1 (en) | Generation of an observer view in a virtual environment | |
US9032405B2 (en) | Systems and method for assigning executable functions to available processors in a multiprocessing environment | |
CN113126866B (zh) | 对象确定方法、装置、电子设备以及存储介质 | |
CN108351888B (zh) | 生成可推迟数据流 | |
CN114564268A (zh) | 一种设备管理方法、装置、电子设备和存储介质 | |
CN111507265A (zh) | 表格关键点检测模型训练方法、装置、设备以及存储介质 | |
CN108182656B (zh) | 一种图像处理方法及终端 | |
US11308693B2 (en) | Smart edge loop selection | |
JP7504247B2 (ja) | ノート生成方法及び装置、電子機器、記憶媒体及びコンピュータプログラム | |
CN114546314B (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 |