假设我在n x m像素的2D曲面上有p个节点,我希望这些节点相互吸引,以使它们之间的距离越远,吸引力就越强。但是,如果两个节点之间的距离(例如d(A,B))小于某个阈值(例如,k),则它们开始排斥。任何人都可以让我开始一些关于如何随时间更新节点坐标的代码。

我有一些类似于下面的代码的东西,它开始吸引人,但是正在寻找一些建议。 (P.S.我无法使用现有的库来执行此操作)。

public class node{
 float posX;
 float posY;
}

public class mySimulator{

ArrayList<node> myNodes = new ArrayList<node>();

// Imagine I add a load of nodes to myNodes
myNodes.add(.....

// Now image this is the updating routine that is called at every fixed time increment

public void updateLocations(){
 for(int i =0; i <= myNodes.size(); i++){
  for(int i =0; i <= myNodes.size(); i++){
  myNodes.get(i).posX = myNodes.get(i).posX + "some constant"*(myNodes.get(j).posX -myNodes.get(i).posX);
  myNodes.get(i).posY = myNodes.get(i).posY + "some constant"*(myNodes.get(j).posY -myNodes.get(i).posY);
  }
 }
}

}


}

最佳答案

弹性碰撞的kinetic model与磁性完全无关,但是设计可能会给您一些有关建模粒子相互作用的想法。

10-08 19:43