У меня есть график раскладки, где пользователь динамически добавляет узлы. Как я могу центрировать все мои узлы с небольшим расстоянием между ними, и заставить их перемещаться независимо, а не вокруг центра.
Я попытался удалить d3.forceCenter(width / 2, height / 2)
, который заставляет узлы перемещаться независимо, но затем он разрешает все узлы в (0, 0).
simulation = d3.forceSimulation()
.force('charge', d3.forceManyBody().strength(0))
.force('center', d3.forceCenter(width / 2, height / 2));
Я хочу, чтобы все узлы были отцентрированы и перемещались независимо.
РЕДАКТИРОВАТЬ:
Я пытался установить значения cx
и cy
, но это тоже не сработало.
const nodeEnter = nodeElements
.enter()
.append('circle')
.attr('r', 20)
.attr('fill', 'orange')
.attr('cx', (d, i) => {
return (width / 2) + i * 10;
})
.attr('cy', (d, i) => {
return (height / 2) + i * 10;
})
.call(dragDrop(simulation))
.on('click', ({ id }) => handleClick(id));