Я пытаюсь разрешить весь график (например, сворачиваемую дендрограмму (http://mbostock.github.com/d3/talk/20111018/tree.html) для перемещения в визуализации с использованием центроида всего графика и не знаю, как лучше всего обработать этот график в качестве дискретного узла и использовать координаты центроида для манипулирования.Как будет вычисляться центроид графика, позволяя графу иметь динамический размер, чтобы учитывать новые узлы, тем самым пересчитывая центроид?
Поиск центроида графика в D3.js
Ответы (2)
Похоже, в вашем случае проще было бы получить контейнер графика (т.е. SVG) и вычислить его центральную точку. Предполагая, что поля рисуемого вами графика не слишком велики и/или не сбалансированы, поведение будет очень похоже на вычисление центроида графика, но гораздо проще для достижения.
Код будет выглядеть примерно так.
var centerx = svg.getBBox().x + svg.getBBox().width/2,
centery = svg.getBBox().y + svg.getBBox().height/2;
person
Lars Kotthoff
schedule
30.03.2013
Спасибо за помощь. Конечная цель — использовать это как узел в силовом графе. Я пытался использовать переменную 'g' для управления этим, но мне не повезло.
- person Jakub Svec; 30.03.2013
Возможно, это будет полезно: http://graphstream-project.org/doc/Algorithms/Centroid_1 .0/а>. Я знаю, что вы спрашиваете в контексте D3.js. Но может быть что-то, что можно использовать из центроида в GraphStream.
person
Steven Noel
schedule
01.10.2013