如何使用d3力定义和使用自定义力?

时间:2018-11-15 21:37:25

标签: javascript d3.js force-layout d3-force-directed

我想定义和使用自定义力,例如定心,径向力,对此我已经有一个矢量场。

这是我要使用的力函数:

function force(alpha) {
    viewNode= nodes[0];
    //console.log("hey!!!");
  var thetaArray= [];

  for (var i = 1, n = nodes.length, node; i < n; ++i) {


    node = nodes[i];
    var theta=Math.atan(node.y/node.x);
    if(node.x<0)
    {
        theta+=Math.PI;
    }
    thetaArray.push({theta:theta,index:i});


  }

    thetaArray.sort(function(a,b){return a.theta-b.theta});


  for (var i = 1, n = nodes.length, node1, node2, k = alpha * 1; i < n; ++i) {

    node1 = nodes[(thetaArray[i].index)%n];
    node2 = nodes[(thetaArray[i].index+1)%n];  
    node1.vx -= (node1.y) * k;
    node1.vy += (node1.x) * k;
    node2.vx += (node2.y) * k;
    node2.vy -= (node2.x) * k;

  }
    }

0 个答案:

没有答案