Я пытаюсь создать граф, ориентированный на силу, используя d3.layout.force
, и мне нужно, чтобы размер контейнера изменялся, то есть я хотел бы иметь возможность рассчитать соответствующие значения заряда и linkDistance на основе размера или сделать это для меня d3 в каким-то волшебным образом.
Я попытался (ссылка: http://jsfiddle.net/VHdUe/6/ ), который использует только узлы. Я устанавливаю заряд на значение, основанное на количестве узлов, которые будут соответствовать радиусу круга, к которому он имеет форму.
Решение работает для некоторых контейнеров среднего размера, но если вы несколько раз щелкнете изменить размер, вы увидите, что оно не работает для всех размеров...
Единственный путь вперед, который я вижу, — это использовать масштабное преобразование svg, которое испортит размер моих элементов в неблагоприятном свете. Любые другие варианты?
PS: я видел http://mbostock.github.com/d3/talk/20110921/bounding.html (ответ на принудительно направленный макет D3 с ограничивающей рамкой), но я предпочел бы решение, основанное на гравитации, чем решение с ограничивающей рамкой.