Как определить и использовать пользовательскую силу, используя d3-force? - PullRequest
0 голосов
/ 16 ноября 2018

Я хочу определить и использовать пользовательскую силу, такую ​​как центрирование, радиальные силы, для которых у меня уже есть векторное поле.

Это функция силы, которую я хочу использовать:

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;

  }
    }
...