Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何找到一组向量的质心?_Java_Algorithm_Math - Fatal编程技术网

Java 如何找到一组向量的质心?

Java 如何找到一组向量的质心?,java,algorithm,math,Java,Algorithm,Math,所以,我有一组位置向量(基本上是点)。如何找到这些点的“重心”?把它们加起来,然后除以点数,似乎是行不通的。我正在使用Java,但如果您能提供任何帮助,我们将不胜感激,这几乎不是一个语言特定的问题 编辑:好的,听起来我不够清楚。每个点的权重相同,我想找到这组点的中心。当我用手平均它们时,我得到了正确的答案,但是当我在程序中尝试用同样的方法时,它给出的答案大约有10-20%太大了。我正在尝试做一个植绒算法。这是计算所有Boid的质心的位。flock.boidlist是boid的数组列表,位置是每个

所以,我有一组位置向量(基本上是点)。如何找到这些点的“重心”?把它们加起来,然后除以点数,似乎是行不通的。我正在使用Java,但如果您能提供任何帮助,我们将不胜感激,这几乎不是一个语言特定的问题

编辑:好的,听起来我不够清楚。每个点的权重相同,我想找到这组点的中心。当我用手平均它们时,我得到了正确的答案,但是当我在程序中尝试用同样的方法时,它给出的答案大约有10-20%太大了。我正在尝试做一个植绒算法。这是计算所有Boid的质心的位。flock.boidlist是boid的数组列表,位置是每个boid的向量场。我的向量类有加法和标量乘法的函数

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();

据我所知,这就是你要找的。平均分数应该有效,你能解释一下它是怎么失败的吗?

据我所知,这就是你要找的。平均分数应该有效,你能解释一下它是怎么失败的吗?

定义“质心”——质心?这听起来像是一个数学问题,而不是Java问题。求和和和除法就是求点的平均值,这听起来像是质心的合理定义。有什么问题吗?如果你不准备解释它是如何不起作用的,千万不要说“不起作用”。它不是平均值,它是加权平均值,其中每个点的权重因子是它的相关质量。也许你没有将每个点乘以它的质量?@Oli质心没有合理或不合理的定义。它有定义。;-)对于质量相等的点质量集合,其位置的算术平均值确实等于质心。定义“质心”——质心?这听起来像是一个数学问题,而不是Java问题。求和和和除法就是求点的平均值,这听起来像是质心的合理定义。有什么问题吗?如果你不准备解释它是如何不起作用的,千万不要说“不起作用”。它不是平均值,它是加权平均值,其中每个点的权重因子是它的相关质量。也许你没有将每个点乘以它的质量?@Oli质心没有合理或不合理的定义。它有定义。;-)对于质量相等的点质量集合,其位置的算术平均值实际上等于质心。