如何在 D3.js 中的图形的两个随机节点之间获得全长 link 突出显示?

How to get full length link highlighting between two random nodes of a graph in D3.js?

我是 D3.js 的新手。事实上,我刚刚开始学习它以在工作中的新原型中实现它。所以我遇到的问题是:

我有一个图表,其中包含从任何一个节点到任何其他节点的连接(但是没有循环)。那么假设我想 click/double 单击一个特定的节点,然后将鼠标悬停在另一个节点上,是否可以突出显示两个节点之间的所有连接路径,同时使其他链接和节点变灰?最初我认为只需将鼠标悬停在一个节点上就会触发路径的突出显示,但后来我意识到在我的情况下,所有链接都会突出显示!所以我突然想到我可以通过单击 select 一个节点,然后通过将鼠标悬停在它上面来选择另一个节点。

这样可行吗?任何替代方案也将不胜感激!

好的,所以我能够解决部分问题。我可以使用 BFS 的变体获得图中任意两个随机节点之间的全长路径之一,我维护另一个数组来跟踪访问的节点,然后递归地追溯路径(如果至少有一条路径存在于selected 节点)。这样我就可以 select 图表中的两个节点(使用点击),按空格键突出显示两个节点之间的路径,然后单击页面的任何空白部分以删除突出显示。请注意,我必须获得节点的完整邻接矩阵(双向)才能完成这项工作。

如果其他人有兴趣,我可以分享更多细节。由此,我认为获得两个随机 selected 节点之间的所有路径只需要多一跳。