如何找到point3d数组的中心?

时间:2012-04-23 19:38:05

标签: c# .net geometry point

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

2 个答案:

答案 0 :(得分:4)

听起来你可以使用:

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

答案 1 :(得分:3)

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

  1. 所有点的边界框的中心 - 您可以通过查找最小和最大点来执行此操作,然后查找框的角落。这个方框的中心是(min + max)/ 2

  2. 所有点的质心与上面的中心不同,请参阅here。这个,BTW是Jon Skeet在上面给出的解决方案。