在infoVis JIT图中指定节点之间的最小距离

时间:2013-04-09 10:28:29

标签: javascript canvas graph-visualization infovis thejit

有没有什么方法可以指定力导向图中节点/边之间的最小距离?

我有一些图表,其中一个节点直接连接到数百个其他节点,在这种情况下,选择特定的边缘或节点实际上很困难,因为边缘和节点非常接近onMouseEnter,onClick等事件不是以用户期望的方式解雇。

e.g。如果nodeA和nodeB非常接近,当我悬停nodeA并期望它突出显示时,nodeB会突出显示,因为nodeB触发了事件。当边缘彼此太靠近时,边缘也是如此。基本上,用户确切地知道正在悬停或选择哪个节点/边缘确实令人困惑。

我知道我们可以指定边长。这可以在一定程度上解决这个问题,但是当你有数百个节点和边缘时它没有用。而且我不能将边长设置为超过画布的高度。

如果我们可以指定节点/边之间的一些最小距离,那将非常有用。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

作为InfoVis/TheJit API Documentation,有.eachNode()函数允许您循环遍历所有节点并检索其数据。

$jit.Graph.Util.eachNode( graph, function( node ) {  
   console.log( node );
} );  
// or:
graph.eachNode( function( node ) {  
    console.log( node );
} );

由于我没有使用InfoVis / TheJit超过一年且目前没有设置任何项目,我不知道您是否可以使用Graph.Node.getPos()检索该位置。无论如何,如果你想出这个步骤,你必须写一个将保持位置的对象/数组/矩阵。如果某些el要靠近另一个el,您可以使用Graph.Node.setPos()重新定位它。