gpt4 book ai didi

javascript - 我如何给某些边缘上课?

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:07 25 4
gpt4 key购买 nike

我有一个力导向图,我可以在其中显示和隐藏节点。我希望根据边缘源和目标是显示还是隐藏来对边缘执行此操作。

这里我选择边,遍历所有选定的节点以查看它们是否与边源匹配,如果匹配,再次循环它们以查看它们是否也与边的目标匹配,然后我想如果它不显示源和目标,则将该边缘类设置为“可见”,然后将类设置为“隐藏”。

  var selectedNodes = d3.selectAll(".selectedNode"); 
var linksVisible = d3.selectAll(".link.visible");

var countOfVisibleLinks = [];
linksVisible.each(function(o)
{
selectedNodes.each(function(i)
{
if(o.source.index === i.index)
{
//clog("yes1");
selectedNodes.each(function(j)
{
if(o.target.index === j.index)
{
countOfVisibleLinks++;
//visibleLinks.push(o);

var myLink = d3.selectAll(".link.visible")
.classed("hidden", function(d) {
return d === o ? false : true;
});
//.filter(function(d) { return d === o; })
//.attr('class', 'hidden');

}
})
}
})
});

“countOfVisibleLinks”有效,因为它正确地计算了可见边缘,但此后的函数不会将选定的边缘设置为“可见”,将未选定的边缘设置为“隐藏”

有什么想法吗?

最佳答案

我会尝试类似的东西

d3.selectAll(".link").attr("class", function(d) {
var c = "link";
if (d.source.visible && d.target.visible) { // or however you check the nodes?
c += " visible";
} else {
c += " hidden";
}
return c;
});

对于您的场景,您可以使用 if (selectedNodes.indexOf(d.source)...

关于javascript - 我如何给某些边缘上课?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27566369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com