Получение позиций экрана узлов D3 после преобразования

Я пытаюсь получить положение экрана узла после преобразования макета с помощью d3.behavior.zoom (), но ямне не очень повезло. Как мне получить узел?Фактическая позиция в окне после перевода и масштабирования макета?

mouseOver = function(node) {
  screenX = magic(node.x); // Need a magic function to transform node
  screenY = magic(node.y); // positions into screen coordinates.
};

Любое руководство будет оценено.

РЕДАКТИРОВАТЬ: 'узел' выше узел размещения силы, так чтоСвойства x и y устанавливаются симуляцией и остаются постоянными после того, как симуляция приходит в состояние покоя, независимо от того, какой тип преобразования применяется.

РЕДАКТИРОВАТЬ: стратегия ям, чтобы преобразовать SVG происходит от d3 'Поведение зума, которое описано здесь:SVG Геометрическое масштабирование.

var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height)
  .append("g")
    .call(d3.behavior.zoom().scaleExtent([1, 8]).on("zoom", zoom))
  .append("g");

svg.append("rect")
    .attr("class", "overlay")
    .attr("width", width)
    .attr("height", height);

svg.selectAll("circle")
    .data(data)
  .enter().append("circle")
    .attr("r", 2.5)
    .attr("transform", function(d) { return "translate(" + d + ")"; });

function zoom() {
  svg.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}

Это'довольно просто. d3'Поведение масштабирования доставляет события панорамирования и масштабирования в обработчик, который применяет преобразования к элементу контейнера с помощью атрибута преобразования.

РЕДАКТИРОВАТЬ: Яя работаю вокруг проблемы, используя координаты мыши вместо координат узла, так как яМеня интересует положение узла, когда узел находится над указателем мыши. Это'не совсем то поведение, которое ям после, но это работает по большей части, и лучше, чем ничего.

РЕДАКТИРОВАТЬ: Решением было получить текущую матрицу преобразования элемента svg с помощью element.getCTM (), а затем использовать ее для смещения координат x и y в относительное к экрану состояние. Увидеть ниже.

Ответы на вопрос(2)

Ваш ответ на вопрос