首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >修复D3强制定向布局中的节点位置

修复D3强制定向布局中的节点位置
EN

Stack Overflow用户
提问于 2012-05-01 09:29:00
回答 1查看 53.3K关注 0票数 73

我希望我的力导向布局中的一些节点忽略所有力,并基于节点的属性停留在固定位置,同时仍然能够被拖动并对其他节点施加排斥力,并保持其链接线。

我原以为事情会很简单:

代码语言:javascript
复制
force.on("tick", function() {
    vis.selectAll("g.node")
        .attr("transform", function(d) {
            return (d.someAttribute == true) ?
               "translate(" + d.xcoordFromAttribute + "," + d.ycoordFromAttribute +")" :
               "translate(" + d.x + "," + d.y + ")"
        });
  });

我还尝试在每个节拍中手动设置节点的x和y属性,但如果节点受到力的影响,链接会继续漂浮到节点所在的位置。

显然,我对这是如何工作的有一个基本的误解。如何在保留链接并允许它们可拖动的同时,将节点固定在某个位置?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-01 23:34:39

将所需节点上的d.fixed设置为true,并将d.xd.y初始化为所需位置。然后,这些节点仍将是模拟的一部分,您可以使用常规显示代码(例如,设置变换属性);但是,由于它们被标记为固定,因此只能通过拖动移动它们,而不能通过模拟移动它们。

有关更多详细信息,请参见强制布局文档(v3 docscurrent docs),还可以查看根节点在this example中的定位方式。

票数 82
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10392505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档