2012-04-23 83 views
0

我們有一個Point3D [] - 點雲。我們想找到它的中心。如何做這樣的事情,這裏通過中心我們的意思是幾何意義?如何找到point3d數組的中心?

+1

你嘗試過什麼嗎?你有沒有嘗試過尋找合適的算法? – 2012-04-23 19:41:16

+3

你想如何定義中心?重心,與其他點的最小平方距離點,算術平均值,幾何平均值... – 2012-04-23 19:41:23

+0

也許你正在看邊界框的中心?請定義您的中心意思,並提供例子。 – ja72 2012-04-23 19:43:41

回答

3

聽起來像是你可以使用:

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

請求下面的OP進行澄清。目前還不清楚他是否想要在他的問題中包圍盒的質心或幾何中心。 – Ani 2012-04-23 19:45:47

+0

我想知道幾何意義,但在我的具體情況平均會做=)謝謝你謹慎。 – myWallJSON 2012-04-23 19:56:18

+0

從OP的[其他最近的問題]判斷(http://stackoverflow.com/questions/10286555/having-an-array-of-points-that-form-a-circle-how-to-randomize-one-coordinate) ,他們正在尋找最適合的圈子的中心。一般來說,這與質心不一樣。 – 2012-04-23 21:18:53

2

人能想到很多不同的中心,你要哪一個?

  1. 所有點的邊界框的中心 - 您可以通過查找最小點和最大點,然後選擇框的拐角來完成此操作。這個盒子的中心是(min + max)/ 2

  2. 所有點的質心這是不一樣的,上面的中心見here。這個,BTW是上面Jon Skeet給出的解決方案。