D3.js 在拖动点时更新图形

D3.js 在拖动点时更新图形,d3.js,D3.js,我正在使用d3制作一个最佳拟合线应用程序,我希望在拖动点的同时更新最佳拟合线。我让它工作,这样当你的拖动结束时,线会自动更新。但是,当涉及到在拖动点时实际更新时,我无法做到这一点 这是我的拖动功能: var move = d3.behavior.drag() .on("drag",drag) .on("dragend",function(){ dict.length = 0;

我正在使用d3制作一个最佳拟合线应用程序,我希望在拖动点的同时更新最佳拟合线。我让它工作,这样当你的拖动结束时,线会自动更新。但是,当涉及到在拖动点时实际更新时,我无法做到这一点

这是我的拖动功能:

 var move =  d3.behavior.drag()
                .on("drag",drag)
                .on("dragend",function(){
                    dict.length = 0;
                    var dragPoint = d3.select(this);
                    var newX = x_scale2(parseInt(dragPoint.attr("cx")));
                    var newY = y_scale2(parseInt(dragPoint.attr("cy")));

                    model.replace_point(dragPoint.attr("id"),newX,newY);
                    updateDisplay();


            });

  function drag(){
      var dragPoint = d3.select(this);
      dragPoint
    .attr("cx",function(){return d3.event.dx + parseInt(dragPoint.attr("cx"));})
    .attr("cy",function(){return d3.event.dy +parseInt(dragPoint.attr("cy"));})
        }

**如果您能帮助我实现目标,我们将不胜感激**

您只需在拖动功能中包含“更新代码”。
然后,该行将在每次触发拖动事件时更新。这意味着每次点的位置改变

var move = d3.behavior.drag()
    .on("drag", drag);

function drag() {
    var dragPoint = d3.select(this);
    dragPoint
        .attr("cx", d3.event.dx + parseInt(dragPoint.attr("cx")))
        .attr("cy", d3.event.dy + parseInt(dragPoint.attr("cy")));
    var newX = x_scale2(parseInt(dragPoint.attr("cx")));
    var newY = y_scale2(parseInt(dragPoint.attr("cy")));
    model.replace_point(dragPoint.attr("id"), newX, newY);
    updateDisplay();
}