我是D3.js的新手。事实上,我刚刚开始学习如何在工作中使用新原型。所以我遇到的问题是:
我有一个从任何一个节点到任何其他节点的连接图(但是没有循环)。因此,假设我想单击/双击特定节点,然后将鼠标悬停在另一个节点上,是否可以突出显示两个节点之间的所有连接路径,同时使其他链接和节点变灰?最初我认为只是悬停在节点上会触发突出显示的路径,但后来我意识到,在我的情况下,所有链接都会突出显示!所以我想到我可以通过点击它来选择一个节点,然后通过将鼠标悬停在其上来选择另一个节点。
这甚至可行吗?任何替代方案也将受到高度赞赏!
答案 0 :(得分:0)
好的,所以我能够解决部分问题。我可以使用BFS的变体获得图中任意两个随机节点之间的全长路径之一,其中我维护另一个数组以跟踪被访问节点,然后递归地追溯路径(如果之间至少存在一条路径)选定的节点)。这样我就可以在图形中选择两个节点(使用点击),按空格键突出显示两个节点之间的路径,然后单击页面的任何空白部分以删除突出显示。请注意,我必须为节点获得一个完整的邻接矩阵(双向)才能使其工作。
如果有其他人感兴趣,我可以分享更多细节。从这一点来看,我认为只需要一跳就可以获得两个随机选择的节点之间的所有路径。