所以,我有一组位置向量(基本上是点)。我怎样才能找到这些点的“质心”?将它们相加然后除以点数似乎不起作用。我正在使用Java,但任何帮助都会受到赞赏,这不是一个语言特定的问题。
编辑:好的,听起来我还不够清楚。每个点的权重相同,我想找到这组点的中心。当我手动平均它们时,我得到了正确的答案,但是当我尝试在程序中以相同的方式执行它时,它给出了大约10-20%的答案。我正在尝试制作一个植绒算法。这是应该计算所有boid的质心的位。 flock.boidlist是Boids的ArrayList,position是每个boid的Vector字段。 My Vector类具有加法和标量乘法的功能
c=new Vector(0,0);
for(Boid b: flock.boidList){
c.x+=b.position.x;
c.y+=b.position.y;
}
c.x=c.x/flock.boidList.size();
c.y=c.y/flock.boidList.size();
答案 0 :(得分:4)
据我所知,这就是你要找的http://en.wikipedia.org/wiki/Centroid#Of_a_finite_set_of_points。平均点应该有效,你能解释它是如何失败的吗?