javascript – D3物理引力

前端之家收集整理的这篇文章主要介绍了javascript – D3物理引力前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试用D3库设计一个物理重力模拟,但我没有太多运气. ‘layout’ API reference声明物理重力可以通过正的“充电”参数来实现,但我不确定这是如何工作的.

我现在试图实现的是一个SVG元素,其中包含多个可变加权和大小的rects,它们以不同的速度上升,最终离开视口 – 它们的权重将定义它们上升的速度. (基本上,我只是试图从视口顶部实现全局引力.)

是否有可行的方法按照D3力布局进行此操作?我只是在寻找概念解决方案,但是例子和代码片段也很受欢迎.

提前致谢!

解决方法

这是几个想法:

>您可以直接修改tick事件处理程序中节点的垂直位置:

force.on("tick",function(e) {
    nodes.forEach(function(o,i) {
        o.y -= o.weight / 30;
     });

     node.attr("cx",function(d) { return d.x; })
         .attr("cy",function(d) { return d.y; });
});

您需要为此方法设置force.gavity(0).>或者您可以使用force.gravity:它将节点拉向布局中心,您可以指定svg transfromation以将布局中心移到视口上方

猜你在找的JavaScript相关文章