我正在使用类似于http://mbostock.github.io/d3/talk/20111018/tree.html的树布局和代码
我将其修改为自上而下的方向。随着每个节点的打开/扩展,其他打开的节点会压缩以适应 SVG 元素中的所有内容。有可能防止这种情况吗?我认为修改每个节点的 x 组件将是一种方法,但无法实现。节点移动了,但仍被压缩在一起。
还想知道如何将连接线从贝塞尔曲线更改为直角/直线。也许需要一个单独的问题。
我正在使用类似于http://mbostock.github.io/d3/talk/20111018/tree.html的树布局和代码
我将其修改为自上而下的方向。随着每个节点的打开/扩展,其他打开的节点会压缩以适应 SVG 元素中的所有内容。有可能防止这种情况吗?我认为修改每个节点的 x 组件将是一种方法,但无法实现。节点移动了,但仍被压缩在一起。
还想知道如何将连接线从贝塞尔曲线更改为直角/直线。也许需要一个单独的问题。
压缩在树布局中是自动的(以及它的一部分)。没有办法关闭它。但是,您可以简单地使您的 SVG 大到足以包含整个展开的树而无需压缩。请注意,这意味着除非您的屏幕足够大,否则即使可见的所有内容都适合屏幕,也会显示滚动条。
连接节点的链接是使用示例中的对角线生成器生成的。原则上,您可以将其替换为任何其他线生成器(例如d3.svg.line
),但实际上需要进行一些更改,因为对角线生成器以特殊方式访问源节点和目标节点。对于法线生成器,您需要将此结构转换为二元素数组,并为每个元素指定如何访问 x/y 坐标。然后你可以使用任何插值来获得你想要的曲线。