请问大神们能让点击的节点位于中心位置吗

描述:当前是关于Echarts图表中的 关系图 示例。
 
            var allData = {
    dict: {
        '0': '云盘',
        '1': '文件B',
        '2': '文件C',
        '3': '文件A'
    },
    nodes: [{
        id: '0',
        name: '云盘',
        category: 0,
        //fixed:true,
        //x:300,
        //y:400
    }, {
        id: '1',
        name: '文件B',
        category: 1
    }, {
        id: '2',
        name: '文件C',
        category: 2
    }, {
        id: '3',
        name: '2011-11-15 星期二[北京新闻 北京新闻第一版]',
        category: 2
    }],
    links: [{
        source: '0',
        target: '1',
        value: '引用'
    }, {
        source: '0',
        target: '2',
        value: '分享'
    }, {
        source: '0',
        target: '3',
        value: '200'
    }],
    linkDict: {}
};
var rocket = 'path://M-244.396,44.399c0,0,0.47-2.931-2.427-6.512c2.819-8.221,3.21-15.709,3.21-15.709s5.795,1.383,5.795,7.325C-237.818,39.679-244.396,44.399-244.396,44.399z M-260.371,40.827c0,0-3.881-12.946-3.881-18.319c0-2.416,0.262-4.566,0.669-6.517h17.684c0.411,1.952,0.675,4.104,0.675,6.519c0,5.291-3.87,18.317-3.87,18.317H-260.371z M-254.745,18.951c-1.99,0-3.603,1.676-3.603,3.744c0,2.068,1.612,3.744,3.603,3.744c1.988,0,3.602-1.676,3.602-3.744S-252.757,18.951-254.745,18.951z M-255.521,2.228v-5.098h1.402v4.969c1.603,1.213,5.941,5.069,7.901,12.5h-17.05C-261.373,7.373-257.245,3.558-255.521,2.228zM-265.07,44.399c0,0-6.577-4.721-6.577-14.896c0-5.942,5.794-7.325,5.794-7.325s0.393,7.488,3.211,15.708C-265.539,41.469-265.07,44.399-265.07,44.399z M-252.36,45.15l-1.176-1.22L-254.789,48l-1.487-4.069l-1.019,2.116l-1.488-3.826h8.067L-252.36,45.15z';
var categories = [{
    name: '视频'
}, {
    name: '音频'
}, {
    name: '图片'
}, {
    name: '其他'
}];
option = {
    title: {
        text: '文件关系',
        top: 'bottom',
        left: 'right'
    },
    tooltip: {
                                enterable: true,
                                triggerOn: 'click'},
    //动画
    //animationDurationUpdate: 20000,
    //animationEasingUpdate: 'cubicInOut',
    //animationDurationUpdate: function (idx) {
    // 越往后的数据延迟越大
    //return idx * 1;
    //},
    legend: {
        x: "center",
        //show: false,
        data: categories.map(s => {
            return s.name;
        })
    },
    series: [{
        type: 'graph',
        layout: 'force',
        symbolSize: 45,
        focusNodeAdjacency: true,
        roam: true,
        draggable: false,
        categories: categories,
        dataZoom: [{
            id: 'dataZoomX',
            show: true, //是否显示 组件。如果设置为 false,不会显示,但是数据过滤的功能还存在。
            backgroundColor: "rgba(47,69,84,0)", //组件的背景颜色
            type: 'slider', //slider表示有滑动块的,inside表示内置的
            dataBackground: { //数据阴影的样式。
                //lineStyle: mylineStyle, //阴影的线条样式
                //areaStyle: myareaStyle, //阴影的填充样式
            },
            fillerColor: "rgba(167,183,204,0.4)", //选中范围的填充颜色。
            borderColor: "#ddd", //边框颜色。
            filterMode: 'filter', //'filter':当前数据窗口外的数据,被 过滤掉。即 会 影响其他轴的数据范围。每个数据项,只要有一个维度在数据窗口外,整个数据项就会被过滤掉。
            //'weakFilter':当前数据窗口外的数据,被 过滤掉。即 会 影响其他轴的数据范围。每个数据项,只有当全部维度都在数据窗口同侧外部,整个数据项才会被过滤掉。
            //'empty':当前数据窗口外的数据,被 设置为空。即 不会 影响其他轴的数据范围。
            //'none': 不过滤数据,只改变数轴范围。
            xAxisIndex: 100, //设置 dataZoom-inside 组件控制的 x轴,可以用数组表示多个轴
            yAxisIndex: [0, 2], //设置 dataZoom-inside 组件控制的 y轴,可以用数组表示多个轴
            radiusAxisIndex: 3, //设置 dataZoom-inside 组件控制的 radius 轴,可以用数组表示多个轴
            angleAxisIndex: [0, 2], //设置 dataZoom-inside 组件控制的 angle 轴,可以用数组表示多个轴
            start: 30, //数据窗口范围的起始百分比,表示30%
            end: 70, //数据窗口范围的结束百分比,表示70%
            startValue: 10, //数据窗口范围的起始数值
            endValue: 100, //数据窗口范围的结束数值。
            orient: "horizontal", //布局方式是横还是竖。不仅是布局方式,对于直角坐标系而言,也决定了,缺省情况控制横向数轴还是纵向数轴。'horizontal':水平。'vertical':竖直。
            zoomLock: false, //是否锁定选择区域(或叫做数据窗口)的大小。如果设置为 true 则锁定选择区域的大小,也就是说,只能平移,不能缩放。
            throttle: 100, //设置触发视图刷新的频率。单位为毫秒(ms)。
            zoomOnMouseWheel: true, //如何触发缩放。可选值为:true:表示不按任何功能键,鼠标滚轮能触发缩放。false:表示鼠标滚轮不能触发缩放。'shift':表示按住 shift 和鼠标滚轮能触发缩放。'ctrl':表示按住 ctrl 和鼠标滚轮能触发缩放。'alt':表示按住 alt 和鼠标滚轮能触发缩放。
            moveOnMouseMove: true, //如何触发数据窗口平移。true:表示不按任何功能键,鼠标移动能触发数据窗口平移。false:表示鼠标滚轮不能触发缩放。'shift':表示按住 shift 和鼠标移动能触发数据窗口平移。'ctrl':表示按住 ctrl 和鼠标移动能触发数据窗口平移。'alt':表示按住 alt 和鼠标移动能触发数据窗口平移。
            left: "center", //组件离容器左侧的距离,'left', 'center', 'right','20%'
            top: "top", //组件离容器上侧的距离,'top', 'middle', 'bottom','20%'
            right: "auto", //组件离容器右侧的距离,'20%'
            bottom: "auto", //组件离容器下侧的距离,'20%'

        }],
        label: {
            normal: {
                show: true,
                textStyle: {
                    fontSize: 12
                },
                position: 'top'
            }
        },
        tooltip: {
            formatter: params => {
                // console.log(params);
                var tip = `<span style="color:red;">${params.name}</span><br/>${params.data.contentId}`;
                return tip;
            },
            padding: 5
        },
        force: {
            repulsion: 1000,
            //edgeLength: [1, 200],
            //layoutAnimation :false
        },
        edgeSymbol: 'arrow',
        edgeSymbolSize: [0, 10],
        edgeLabel: {
            normal: {
                show: true,
                textStyle: {
                    fontSize: 10
                },
                formatter: "{c}"
            }
        },
        data: allData.nodes,
        links: allData.links,
        markPoint: {
            symbol: rocket,
            symbolSize: 50,
            data: [{
                name: '某个屏幕坐标',
                x: 100,
                y: 100
            }]
        },
        itemStyle: {
            borderColor: 'source',
            borderWidth: 1
        },
        lineStyle: {
            normal: {
                opacity: 0.9,
                width: 1,
                curveness: 0,
                color: 'source'
            }
        },
        emphasis: {
            lineStyle: {
                width: 5
            }
        }
    }],
    animationDelayUpdate: function(idx) {
        console.log(idx);
    }
};


myChart.on('click', function(params) {
    if (params.dataType == 'node') { //节点
        //console.log(params);
        //console.log(myChart.appendData);
        //myChart.resize();
        nodeOnClick(params);
    }
});

function nodeOnClick(params) {
    var data = params.data;
    var num = Math.floor(Math.random() * 5 + 1);
    for (let i = 1; i <= num; i++) {
        var newNode = {
            id: data.id + i,
            name: i,
            category: Math.floor(Math.random() * 4),
            draggable: true
        };
        if (!allData.dict[newNode.id]) {
            allData.nodes.push(newNode);
            allData.dict[newNode.id] = true;
        }
        if (!allData.linkDict[data.id + '->' + newNode.id]) {
            allData.links.push({
                source: data.id,
                target: newNode.id,
                value: '->' + i
            });
            allData.linkDict[data.id + '->' + newNode.id] = true;
        }
    }
    var node = allData.nodes.find(s => {
        return s.id == data.id;
    });
    node.fixed = true;
    node.x = 10; //params.event.offsetX;
    node.y = 10; //params.event.offsetY;

    myChart.setOption({
        series: [{
            data: allData.nodes,
            links: allData.links
        }]
    });
}

myChart.dispatchAction({
    type: 'dataZoom',
    batch: [{ // 第一个 dataZoom 组件
        start: 100,
        end: 100
    }]
});


// 定义抠图方法
function getImgData(imgSrc, radius, center = {
    x: 0,
    y: 0
}) {
    return new Promise((resolve) => {
        const canvas = document.createElement('canvas');
        const contex = canvas.getContext('2d');
        const img = new Image();
        img.crossOrigin = '';
        const diameter = 2 * radius;
        img.onload = function() {
            canvas.width = diameter;
            canvas.height = diameter;
            contex.clearRect(0, 0, diameter, diameter);
            contex.save();
            contex.beginPath();
            contex.arc(radius, radius, radius, 0, 2 * Math.PI); // 画出圆
            contex.clip(); // 裁剪上面的圆形
            contex.drawImage(img, center.x - radius, center.y - radius, diameter, diameter, 0, 0, diameter, diameter); // 在刚刚裁剪的园上画图
            contex.restore(); // 还原状态
            resolve(canvas.toDataURL('image/png', 1));
        };
        img.src = imgSrc;
    });
}