D3.js 缩放以适应D3中的力布局

D3.js 缩放以适应D3中的力布局,d3.js,D3.js,我的D3代码中有下面的力布局图 //代码在这里 可变宽度=w=300, 高度=h=300, 链接 节点, svg, 武力,, 拖曳 当前选择; 函数tick(){ link.attr(“x1”,函数(d){ 返回d.source.x; }) .attr(“y1”,函数(d){ 返回d.source.y; }) .attr(“x2”,函数(d){ 返回d.target.x; }) .attr(“y2”,功能(d){ 返回d.target.y; }); node.attr(“cx”,函数(d){

我的D3代码中有下面的力布局图

//代码在这里
可变宽度=w=300,
高度=h=300,
链接
节点,
svg,
武力,,
拖曳
当前选择;
函数tick(){
link.attr(“x1”,函数(d){
返回d.source.x;
})
.attr(“y1”,函数(d){
返回d.source.y;
})
.attr(“x2”,函数(d){
返回d.target.x;
})
.attr(“y2”,功能(d){
返回d.target.y;
});
node.attr(“cx”,函数(d){
返回d.x;
})
.attr(“cy”,函数(d){
返回d.y;
});
}
变量图={
“节点”:
[
{
“代码”:“1130”,
“名称”:“内部”,
“标题”:“内部”,
“id”:137,
“标签”:“ATAChild”
},
{
“代码”:“50”,
“名称”:“松散设备”,
“标题”:“松散设备”,
“id”:146,
“标签”:“ATAChild”
},
{
“代码”:“2781”,
“名称”:“LE襟翼位置指示系统”,
“标题”:“LE襟翼位置指示系统”,
“id”:218,
“标签”:“ATAChild”
},
{
“代码”:“2830”,
“名称”:“燃料卸载”,
“标题”:“燃料卸载”,
“id”:227,
“标签”:“ATAChild”
},
{
“代码”:“1130”,
“名称”:“内部”,
“标题”:“内部”,
“id”:138,
“标签”:“ATAChild”
},
{
“代码”:“50”,
“名称”:“松散设备”,
“标题”:“松散设备”,
“id”:147,
“标签”:“ATAChild”
},
{
“代码”:“2781”,
“名称”:“LE襟翼位置指示系统”,
“标题”:“LE襟翼位置指示系统”,
“id”:219,
“标签”:“ATAChild”
},
{
“代码”:“2830”,
“名称”:“燃料卸载”,
“标题”:“燃料卸载”,
“id”:228,
“标签”:“ATAChild”
},
{
“代码”:“1130”,
“名称”:“内部”,
“标题”:“内部”,
“id”:139,
“标签”:“ATAChild”
},
{
“代码”:“50”,
“名称”:“松散设备”,
“标题”:“松散设备”,
“id”:148,
“标签”:“ATAChild”
},
{
“代码”:“2781”,
“名称”:“LE襟翼位置指示系统”,
“标题”:“LE襟翼位置指示系统”,
“id”:220,
“标签”:“ATAChild”
},
{
“代码”:“2830”,
“名称”:“燃料卸载”,
“标题”:“燃料卸载”,
“id”:229,
“标签”:“ATAChild”
}
],
“链接”:
[
]
}
函数render(){
力
.nodes(图.nodes)
.links(graph.links)
.start();
link=link.data(graph.links)
.enter().append(“行”)
.attr(“类”、“链接”);
node=node.data(graph.nodes)
.enter().append(“圆”)
.attr(“类”、“节点”)
.attr(“r”,12)
.呼叫(拖动);
}
函数init(){
force=d3.layout.force()
.尺寸([宽度、高度])
。收费(-400)
.linkDistance(40)
.在(“滴答”,滴答)上;
svg=d3。选择(“图形”)。追加(“svg”)
.attr(“宽度”,宽度)
.attr(“高度”,高度);
阻力=力。阻力();
link=svg.selectAll(“.link”);
node=svg.selectAll(“.node”);
}
window.onload=函数(){
init();
render();
}


此版本放大但不缩小。。。快到了。。。在缩放中更改为较低的数字(例如1),但我如何在那里默认?几乎得到了。剩下的最后一件事是知道我需要在转换中添加什么以使其到达中心。哈哈,我想我将自己解决这个问题(查看之前的plnkr)最后一件事是在第一次缩放时避免跳转。您必须计算x和y坐标的范围,并设置缩放因子,将该范围缩放到画布的大小。