小编atd*_*yer的帖子

当使用svg变换来更新位置时,力模拟是紧张的

JSFiddle示例

我注意到,当在d3-force图中更新svg元素的位置时,使用(在圆圈的情况下)cxcy属性更新元素的位置比使用transform属性更平滑.

在示例JSFiddle中,有两个单独的力模拟并排.左侧的那个使用transform属性更新位置:

sim_transform.on('tick', function () {
  circles_transform.attr('transform', function (d) {
        return 'translate(' + d.x + ',' + d.y + ')';
  });
});
Run Code Online (Sandbox Code Playgroud)

在使用正确的更新位置的一个cxcy圆的属性:

sim_position.on('tick', function () {
  circles_position
    .attr('cx', function (d) {
      return d.x;
    })
    .attr('cy', function (d) {
        return d.y;
    })
});
Run Code Online (Sandbox Code Playgroud)

模拟看起来是相同的,直到它们即将变为静态,此时使用变换的模拟开始抖动很多.是什么原因引起了这个?可以修复,以便使用变换动画保持平滑吗?

javascript firefox svg d3.js d3-force-directed

5
推荐指数
1
解决办法
203
查看次数

标签 统计

d3-force-directed ×1

d3.js ×1

firefox ×1

javascript ×1

svg ×1