1

強制有向グラフでノード/エッジ間の最小距離を指定できる方法はありますか?

1 つのノードが他の何百ものノードに直接接続されているグラフがいくつかあります。このような場合、特定のエッジまたはノードを選択するのは非常に困難です。これは、エッジとノードが非常に接近しているため、 onMouseEnter 、 onClick などのイベントが発生しないためです。ユーザーはそれを期待しています。

たとえば、nodeA と nodeB が本当に近い場合、nodeA にカーソルを合わせて強調表示されると予想すると、nodeB に対してイベントが発生するため、nodeB が強調表示されます。エッジ同士が近すぎる場合も同様です。基本的に、どのノード/エッジがホバリングまたは選択されているかをユーザーが正確に知ることは、本当に混乱します。

辺の長さを指定できることは知っています。これでこの問題はある程度解決できますが、何百ものノードとエッジがある場合は役に立ちません。また、辺の長さをキャンバスの高さ以上に設定することはできません。

ノード/エッジ間の最小距離を指定できれば非常に便利です。

どうすればそれができるか知っている人はいますか?

4

1 に答える 1

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 を 1 年以上使用しておらず、現在プロジェクトをセットアップしていないため、Graph.Node.getPos(). とにかく、このステップを理解した場合は、位置を保持するオブジェクト/配列/マトリックスを作成する必要があります。一部の el が別の el に近い場合は、Graph.Node.setPos()それを再配置するために使用します。

于 2013-04-09T15:19:54.450 に答える