2013-02-20 82 views
1

想象一下,在重力模擬中我有一些物體表示爲球,它們以3組形式聚集在一起(例如,但它可以是任何數字),如何給出每個對象的值取決於它在哪個組(1,2,3)中?我遇到了一個小算法問題

我只走到這一步,我不出來...

var objects = [/* the balls */]; 

... 

this.objects.forEach(
    function(one) { 
     this.objects.forEach(
      function(two) { 
       if(distance(one, two) <= 0) { 
        // these two are in the same group 
       } 
      } 
     ); 
    } 
); 

的事情是,在同一組的兩個球不一定被觸摸,因爲有可能在另一個球之間他們,但是一組中的所有球都至少碰到另一組球中的其他球。

該值只會是「this.group = 1;」。

任何想法非常感謝,謝謝。

回答

0

你的問題是你不能消除它從哪個組來的球。

嘗試使用三個數組來表示三個組,或者可以引用球來自哪個組的更類似對象的結構。

+0

球不一定來自一個組,他們可以自由移動和更改組,也可以組合並分組。把它想象成一個簡單的二維空間重力模擬。所以我需要每次都從頭開始區分它們。 – Suffick 2013-02-20 07:48:07