d3.behavior.zoom дрожит, дрожит, прыгает и подпрыгивает при перетаскивании

Я использую d3.behavior.zoom для реализации панорамирования и масштабирования в древовидной структуре, но он демонстрирует поведение, которое я бы назвал подпрыгиванием или числовой нестабильностью. Когда вы начинаете перетаскивать, дисплей необъяснимо прыгает, пока не исчезнет. Код выглядит следующим образом:

var svg = target.append ("g");
...
svg.call (d3.behavior.zoom()
    .translate ([0, 0])
    .scale (1.0)
    .scaleExtent([0.5, 2.0])
    .on("zoom", function() {
        svg.attr("transform","translate(" + d3.event.translate[0] + "," +  d3.event.translate[1] + ") scale(" +  d3.event.scale + ")");
    })
);

Есть ли лучший способ установить преобразование, которое не вызывает такого рода помех?

22
задан Bretton Wade 12 June 2012 в 14:12
поделиться