0

我们有一个 Point3D[] - 一个点云。我们要找到它的中心。怎么做这样的事情,这里的中心是指几何平均值?

4

2 回答 2

4

听起来你可以使用:

new Point3D(points.Average(p => p.X),
            points.Average(p => p.Y),
            points.Average(p => p.Z));
于 2012-04-23T19:41:16.487 回答
3

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

  1. 所有点的边界框的中心 - 您可以通过找到最小和最大点来做到这一点,然后它们就是框的角。那么这个盒子的中心是 (min + max) / 2

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

于 2012-04-23T19:44:35.630 回答