C# 如何找到point3d阵列的中心?

C# 如何找到point3d阵列的中心?,c#,.net,geometry,point,C#,.net,Geometry,Point,我们有一个Point3D[]-一个点云。我们想找到它的中心。如何做到这一点,这里的中心是指几何平均数?听起来你可以使用: new Point3D(points.Average(p => p.X), points.Average(p => p.Y), points.Average(p => p.Z)); 你可以想到许多不同的中心,你想要哪一个 所有点的边界框的中心-通过查找最小点和最大点来执行此操作,然后这些点就是框的角。该框的中

我们有一个Point3D[]-一个点云。我们想找到它的中心。如何做到这一点,这里的中心是指几何平均数?

听起来你可以使用:

new Point3D(points.Average(p => p.X),
            points.Average(p => p.Y),
            points.Average(p => p.Z));

你可以想到许多不同的中心,你想要哪一个

所有点的边界框的中心-通过查找最小点和最大点来执行此操作,然后这些点就是框的角。该框的中心为最小值+最大值/2

所有点的质心这与上面的中心不同,请参见。顺便说一句,这是上面Jon Skeet给出的解决方案


你试过什么了吗?您是否尝试过搜索合适的算法?您希望如何定义中心?重心,到其他点的最小平方距离点,算术平均值,几何平均值…也许你在看边界框的中心?请定义你所说的中心,并提供一个例子。请从下面的OP获得澄清。在他的问题中,不清楚他是否想要边界框的质心或几何中心。我想知道几何平均值,但在我的特殊情况下,平均值会做=非常感谢你。从OP的判断,他们正在寻找最佳拟合圆的中心。一般来说,这与质心不同。