letxExtent= d3.extent(d3.values(this.graph.nodes), function (n) {
    returnn.x;
    }),
    yExtent= d3.extent(d3.values(this.graph.nodes), function (n) {
    returnn.y;
    });
    letconfigwidth=this.width;
    letconfigHeight=this.height;
    //(整个屏幕的大小-(最大X-最小X))= 2边空余大小。
    lettrY=configwidth- [xExtent[1]];
    lettrX=xExtent[0];
    letxty=configHeight-yExtent[1];
    letxtt=yExtent[0];
    //计算整个图像高x和高y 和高宽比
    letscaleX=parseFloat((xExtent[1] -xExtent[0]) /configwidth);
    letscaleY=parseFloat((yExtent[1] -yExtent[0]) /configHeight);
    //不同的图形这里的缩放比例舒适程度是不同的这里是0.8
    所以 0.8= (高宽最大的)比例 X 就得来 X= 0.8 比例
    letscale=
    parseFloat(0.6/Math.max(scaleX, scaleY)) ==”Infinity”
    ?1
    :parseFloat(0.6/Math.max(scaleX, scaleY));
    //偏移量就是 2边空余大小除以2等于2边的大小都一样大,
    lettranslateX= trY-xExtent[0];
    lettranslateY=-xty;
    this.scale =scale;
    if (scale==1) {
    this.svg.call(
    this.zoom.transform,
    d3.zoomIdentity.translate(0, 0).scale(scale)
    );
    } else {
    this.svg.call(
    this.zoom.transform,
    d3.zoomIdentity
    // .translate(parseFloat(translateX scale), translateYscale)
    .scale(scale)
    );
    }