是否可以在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
答案 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(' ');
});
});