1

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

我有一些图表,其中一个节点直接连接到数百个其他节点,在这种情况下,很难选择特定的边或节点,因为边和节点非常接近以至于 onMouseEnter , onClick 等事件不会被触发用户期望它是。

例如,如果 nodeA 和 nodeB 非常接近,当我将鼠标悬停在 nodeA 上并希望它突出显示时,会突出显示 nodeB,因为为 nodeB 触发了事件。当它们彼此太靠近时,边缘的情况也是如此。基本上,用户很难知道究竟是哪个节点/边缘被悬停或选择。

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

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

有谁知道怎么做?

4

1 回答 1

1

作为InfoVis/TheJit API 文档,有一个.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()它来重新定位它。

于 2013-04-09T15:19:54.450 回答