假设我在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与磁性完全无关,但是设计可能会给您一些有关建模粒子相互作用的想法。