3

特定のノード (ノード参照があるとします) を目的の場所 (キャンバスの左上隅など) に移動したいと考えています。マウスでドラッグしながらノードを移動する、サンプル プロジェクトのようなことを試してみました。しかし、うまくいかないようです。期待どおりにノードが移動していません。これは私が持っているコードです。

$("#someElement").click(function() {
  sys.eachNode(function(node, pt) {
    if (node.name === "specificNode") {
      // moveToOrigin
      var s = arbor.Point(1, 1);
      var p = sys.fromScreen(s);
      node.fixed = true;
      node.p = p;
      node.fixed = false;
      node.tempMass = 1000;
    }
  }
});
4

2 に答える 2

1

ノードを目的の位置に移動するには、キャンバスに対する目的の位置を取得し、パーティクル システムのfromScreen(...)関数を介して設定します。

var point = point;
var pos = canvas.offset();
var s = arbor.Point(point.x-pos.left, point.x-pos.top);
node.p = particleSystem.fromScreen(s);
于 2013-08-24T02:41:38.133 に答える
1

最初にノードの位置を設定してから、ノードの各ループを再度繰り返す必要があります。

redraw: function () {
    gfx.clear()

    particleSystem.eachNode(function (node, pt) {
        //var node = particleSystem.getNode("Carrol Wahi")
        if (node.data.color == "yellow") {
            var pos = $(canvas).offset();
            var point = particleSystem.fromScreen(arbor.Point(pos.left + 150, pos.top));
            node._fixed = true;
            node._p = point;
            //console.log("x=" + point.x + ", y=" + point.y);
            node.tempMass = .1
        }
    });

    particleSystem.eachEdge(function (edge, pt1, pt2) {
        //   your code goes here
      }
    particleSystem.eachNode(function (node, pt) {
       //your code goes here
    })

}

于 2015-06-10T11:07:32.357 に答える