D3.js在选择节点并将其居中时重新绘制强制布局

D3.js在选择节点并将其居中时重新绘制强制布局,d3.js,center,redraw,D3.js,Center,Redraw,每个人 我试图使强制布局,选择节点始终位于中心,并重新绘制整个图形。我现在将1个节点设置为“根”,并将其固定到中心,但我被卡在那里。我目前的做法 Psuedo code: root=nodes[0] root.x and root.y=center and root.fix=true onclick(){ root=not root anymore//Make current root is no longer root d3.select(this)=root; // Selection

每个人 我试图使强制布局,选择节点始终位于中心,并重新绘制整个图形。我现在将1个节点设置为“根”,并将其固定到中心,但我被卡在那里。我目前的做法

Psuedo code:

root=nodes[0]
root.x and root.y=center and root.fix=true

onclick(){
root=not root anymore//Make current root is no longer root
d3.select(this)=root; // Selection become root
update() //What should be in this function?
}
数据格式:miserables.json


其思想就是这个Flash示例:

只需将
fixed=true
分配给要居中的单个节点(同时为其指定适当的
x
y
),布局的其余部分将围绕它进行调整。请参阅
fixed
property Thx meetamit。我能够使第一个节点居中。但当我点击另一个节点时,它是固定的,但不在中心,即使我最后调用了fixed=true。你知道吗?你需要给它赋值x和y等于中心的坐标。您还必须“取消固定”先前选择的节点。只需将
fixed=true
指定给要居中的单个节点(同时为其指定适当的
x
y
),布局的其余部分将围绕该节点进行调整。请参阅
fixed
property Thx meetamit。我能够使第一个节点居中。但当我点击另一个节点时,它是固定的,但不在中心,即使我最后调用了fixed=true。你知道吗?你需要给它赋值x和y等于中心的坐标。您还必须“取消固定”以前选择的节点。