【发布时间】:2014-04-14 03:39:35
【问题描述】:
我有这个http://jsfiddle.net/thechrisjordan/p4Fwm/11/,我正在使用 HTML5 滑块操作 d3 包布局。除了调用 updateVis() 时节点的排序方式外,一切都按我的意愿工作。
这段代码非常简单:我正在创建布局,然后滑块发出一个导致布局更新的事件。
我希望实现的是相同的行为,但让子节点在更改大小时保持在包中相同的一般区域中。如您所见,他们在这里重新定位。
看来我的问题是第 69 行,其中调用了 pack.nodes(data);。我已经深入研究了 d3 源代码,但不知道如何防止这种重新排序(而且很可能不可能......)。
我想另一种方法是尝试将包布局压缩到强制布局中。
我是 d3 的新手,非常感谢这里的任何见解。
【问题讨论】:
-
很遗憾,pack 布局不支持这一点——您必须修改源代码(这很可能是一个重要的修改)。
-
谢谢,@LarsKotthoff。根据 meetamit 的说法,我似乎忽略了可用于包布局的排序方法。这就是我挖掘源代码并忽略文档的结果:)
标签: javascript d3.js force-layout circle-pack