2013-02-20 83 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