Это код, чтобы вычислить координаты солнечных лучей узлов:D3 В4 Санберст расчет схема расположения дуги
var arc = d3.svg.arc()
.startAngle(function(d) { return d.x; })
.endAngle(function(d) { return d.x + d.dx; })
.innerRadius(function(d) { return Math.sqrt(d.y); })
.outerRadius(function(d) { return Math.sqrt(d.y + d.dy); });
Где:
х: минимальная х-координата положения узла
у: минимальный у-координата узла
де: х-масштаб положения узла
д: у-степень от положения узла
Однако в последнее время Выпущенных версий v4, пространство заполнения макетов d3.treemap и d3.partition теперь выходную x0, x1, y0, y1 на каждый узел вместо x0, y0, ого, д
node.x0 - левый край прямоугольника
node.y0 - верхний край прямоугольника
node.x1 - правый край прямоугольника
node.y1 - нижний край прямоугольника
Каким будет код коррекции для v4, поскольку следующее не создает правильную компоновку?
var arc = d3.arc()
.startAngle(function(d) { return d.x0; })
.endAngle(function(d) { return d.x0 + (d.x1 - d.x0); })
.innerRadius(function(d) { return d.y0; })
.outerRadius(function(d) { return d.y0 + (d.y1 - d.y0); });
См codepen