2014-02-18 5 views
11

Ich schaffte es, einige grundlegende d3 Kraft Layout Grafik zu zeichnen, aber kämpfen, wie Wurzelknoten in der Mitte zu beheben.D3 force Layout fix Wurzelknoten in der Mitte

Meine Daten sind ziemlich einfach; ein Wurzelknoten mit einstufigen Kindern. Nur eine Ebene. Eine weitere Besonderheit meines Graphen ist, dass der Link-Abstand abhängig von einigen Parametern variiert.

Ich möchte Root-Knoten in der Mitte des Diagramms sein.

Einstellen der Eigenschaft 'fixed': true funktioniert nicht. Irgendeine Idee, Wurzelknoten im Zentrum zu setzen?

+1

Beispiel [hier] (http://bl.ocks.org/mbostock/1080941). Schauen Sie sich in den ersten beiden Zeilen force.on an. – FernOfTheAndes

+0

Ich bin gerade dem Beispiel wieder gefolgt, sorgfältig diesmal und es funktioniert. – Alfred

Antwort

14
force.on("tick", function() { 
    nodes[0].x = w/2; 
    nodes[0].y = h/2; 

Das sollte es tun.

+2

Ist es möglich, das Verhalten so zu ändern, dass der Knoten anfänglich zentriert ist, aber der Benutzer ihn noch verschieben kann? – samuelg0rd0n

+1

In d3 4.0 werden Knoten nicht fixiert, sondern nur die Koordinaten festgelegt. Um den Knoten zu fixieren benutze "fx" und "fy" – bryanph