假設我有一個n乘m像素的二維曲面上的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);
}
}
}
}
}
這是功課嗎? Yu可能需要解決一些DiffEq到達那裏。自己模擬它可能會不準確 - 你必須擔心速度等。等一下 - 這些節點有質量嗎?這是非常重要的,因爲無質量模擬更容易做到。 – 2010-01-24 16:51:14
你可以從這個傢伙的代碼借用想法 – 2010-01-24 16:53:42
http://www.myphysicslab.com/runge_kutta.html – 2010-01-24 16:55:02