我正在尝试以下列方式修改directed graph editor:
绘制链接时,不会重新定位源节点和目标节点。而是在节点的当前位置之间绘制链接。
当拖动现有节点(使用ctrl)时,它不会影响连接到它的任何连接节点的位置。相反,所有其他节点将保持在其位置,并且只有连接到拖动节点的链接将根据拖动来更改其长度。
我尝试提供此功能以强制使用linkDistance:
force.linkDistance(function(link) {
var deltaX = d.target.x - d.source.x,
deltaY = d.target.y - d.source.y,
dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
return dist;
})
认为这会导致力量假设不需要在链接的每一侧重新定位节点(在documentation之后)。
然而,这导致了运行时错误,我无法解决。
关于如何实现图表的这种行为的任何想法?
答案 0 :(得分:2)
您希望使用fixed
选项,将其设置为每个节点节点的属性,例如{ id:123, fixed:true }
。
固定节点根本不会被力布局移动,所以除非你明确地给它们一个初始位置,否则它们只会被布局分配一个随机的位置。另请注意,所有节点都已修复,没有真正的理由使用强制定向布局。