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

Specify minimum distance between nodes in infoVis JIT graph

本文关键字:距离 之间 节点 infoVis JIT 指定      更新时间:2023-09-26

是否有任何方法可以指定力有向图中节点/边之间的最小距离?

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

。如果nodeA和nodeB非常接近,当我悬停在nodeA上并期望它高亮显示时,nodeB会高亮显示,因为为nodeB触发了事件。当它们彼此太近时,情况也是如此。基本上,它会让用户感到困惑,不知道究竟哪个节点/边被悬停或选中。

我知道我们可以指定边的长度。这可以在一定程度上解决这个问题,但当你有数百个节点和边时,它就没有用了。我不能设置边长大于画布的高度。

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

有人知道怎么做吗?

作为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()来重新定位它。