d3js / svg - 没有固定坐标的多边形?

时间:2015-03-26 10:31:33

标签: javascript svg d3.js

是否可以在d3js中创建SVG多边形形状而无需对坐标进行硬编码?

根据我的理解,创建SVG多边形形状的最常用方法是硬编码坐标,如下面链接的示例中所做的那样。
Process multiple polygons d3
http://www.w3.org/TR/SVG/shapes.html#PolygonElement

但是我不想对坐标进行硬编码,因为我想使用力导向布局算法(在d3js中)来定义坐标,如下面链接的例子中所做的那样。
http://bl.ocks.org/mbostock/2706022

谢谢,
Erno Lindfors

1 个答案:

答案 0 :(得分:0)

请参阅此答案:https://stackoverflow.com/a/13204818/1651713

使用力布局可以正常工作,例如

var polygon = svg.selectAll('polygon')
  .data([nodes])
  .enter()
  .append('polygon')
  .style('fill', 'green');

force.on('tick', function() {
  polygon.attr('points',function(d){
    return d.map(function(d) {
      return [d.x,d.y].join(',');
    }).join(' ');
  });
});