有没有什么方法可以指定力导向图中节点/边之间的最小距离?
我有一些图表,其中一个节点直接连接到数百个其他节点,在这种情况下,选择特定的边缘或节点实际上很困难,因为边缘和节点非常接近onMouseEnter,onClick等事件不是以用户期望的方式解雇。
e.g。如果nodeA和nodeB非常接近,当我悬停nodeA并期望它突出显示时,nodeB会突出显示,因为nodeB触发了事件。当边缘彼此太靠近时,边缘也是如此。基本上,用户确切地知道正在悬停或选择哪个节点/边缘确实令人困惑。
我知道我们可以指定边长。这可以在一定程度上解决这个问题,但是当你有数百个节点和边缘时它没有用。而且我不能将边长设置为超过画布的高度。
如果我们可以指定节点/边之间的一些最小距离,那将非常有用。
有谁知道怎么做?
答案 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()
重新定位它。