Я много читал о влиянии на начальную анимацию макета сил, но боюсь, что еще не понял этого.
Я нашел (и мог реализовать) этот пример, как его эффективно "остановить" .
Но мой вопрос в том, можно ли это контролировать (т.е. влиять на то, сколько времени потребуется, пока «сила не прекратится»?).
Из документации видно, что альфа — это параметр, который нужно изменить, но это не имеет значения (я пробовал отрицательные значения, ноль и положительное значение без какой-либо заметной разницы).
Вот jsdiddle того, что я пытаюсь сделать: yrscc fiddle того, что Я пытаюсь сделать.
var force = d3.layout.force()
.nodes(d3.values(datax.nodes))
.links(datax.links)
.size([xViewPortArea.Width, xViewPortArea.Height])
.linkDistance(xGraphParameters.xLinkDistance)
.charge(xGraphParameters.xCharge)
.on("tick", tick)
.alpha(-5) // HERE
.start();
Мои вопросы:
- какое значение альфы фактически повлияет на количество итераций? (Я думал, что это имелось в виду с " * Если значение неположительно, и принудительное размещение выполняется, этот метод останавливает принудительное размещение на следующем тике и отправляет "конец" в документации
- в этой этой публикации @JohnS предлагает функцию, которая, по-видимому, может помочь. Но я не понял, где это надо называть.
PS: еще один классный вариант — иметь изображение на экране, а затем вычислить оптимальный макет в фоновом режиме, как здесь а>. Но я отказался от попыток реализовать это