ノードからルートへのクリック時にすべてのノードとパスを強調表示しようとしています。
このリンクで部分的な例を見つけました- CYTOSCAPE JS で2つのノード間のパスを強調表示する方法。
上記のリンクのコードは、ダイクストラのアルゴリズムを使用して最短パスを見つけます。しかし、データに示されているように、実際のパスが必要です。
たとえば、次のデータを考えてみましょう。
nodes: [
{ data: { id: 'a' } },
{ data: { id: 'b' } },
{ data: { id: 'c' } },
{ data: { id: 'd' } },
{ data: { id: 'e' } },
{ data: { id: 'f' } },
{ data: { id: 'g' } }
],
edges: [
{ data: { id: 'ab', weight: 1, source: 'a', target: 'b' } },
{ data: { id: 'ac', weight: 2, source: 'a', target: 'c' } },
{ data: { id: 'bd', weight: 3, source: 'b', target: 'd' } },
{ data: { id: 'be', weight: 4, source: 'b', target: 'e' } },
{ data: { id: 'cg1', weight: 5, source: 'c', target: 'g' } },
{ data: { id: 'gc1', weight: 6, source: 'g', target: 'c' } },
{ data: { id: 'cg2', weight: 7, source: 'c', target: 'g' } },
{ data: { id: 'gf', weight: 8, source: 'g', target: 'f' } }
]
リンクのコードを使用すると、ソースが a でターゲットが f の場合、ツリーのハイライトは次のように機能します。
誰かがデータで与えられたパスをトレースして強調表示するのを手伝ってくれるなら、それは非常に役に立ちます.