2015-04-16 3 views
0

Привет Я изучаю D3 и работаю над этим кластерным радиальным деревом. Я застрял в масштабировании и панорамировании характеристик радиального дерева. Когда я пытаюсь увеличить масштаб, дерево переходит к координате (0,0) окна и не остается в центре окна. Мне было интересно, хочет ли кто-нибудь, кто работает над подобным проектом, пролить свет на то, как сохранить дерево в центре экрана во время масштабирования и панорамирования. СпасибоО масштабировании в радиальном дереве D3

+0

Этот пример может помочь: http://jsdatav.is/visuals.html?id=4a3b74228d9cb11eb486 Это подробно обсуждается в книге [Визуализация данных с JavaScript] (http://www.nostarch.com/datavisualization) Онлайн-версия - это [последний пример] (http://jsdatav.is/chap07.html) –

+0

Спасибо Стивен за ответ. Я взглянул на ссылку, и на ней действительно много информации. – sharky

ответ

0

Вам необходимо включить текущий вектор трансляции трансляции и указать координаты для него. Например, с моим проектом, мне пришлось использовать, .translate ([480,480]). Это, по-видимому, вектор, который задает ваш график на пути к масштабированию. Вот фрагмент кода, который я использовал для вызова зум:

d3.select("svg") 
    .call(d3.behavior.zoom() 
    .center([770,450]) 
    .scaleExtent([0.3,10]) 
    .translate([480,480]) //add this to your zoom call, but adjust coordinates 
    .on("zoom",zoom)) 
+0

В качестве примечания стороны, вероятно, вы должны скорректировать координаты .translate() в координатах вашего корневого узла. –

+0

Спасибо, что разделили идею. Это сработало. Все это время я экспериментировал с .center ([]) и другими методами API. Еще раз спасибо. – sharky

Смежные вопросы