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以将布局中心移到视口上方

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...