假设我在一个 m 像素的 2D 表面上有 p 个节点,我希望这些节点相互吸引,这样它们之间的距离越远,吸引力就越强。但是如果两个节点之间的距离,比如 d(A,B) 小于某个阈值,比如 k,那么它们就会开始排斥。谁能让我开始编写一些关于如何随时间更新节点坐标的代码。
我有一些类似于下面的代码的东西,它开始吸引人,但正在寻找一些建议。(PS 我不能使用现有的库来做到这一点)。
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);
}
}
}
}
}