2010-09-13 100 views
0

我有2D的一组p个点,我可以像在二维均匀间隔的网格,其中每个单元是长度X.均匀网格分区

群集我想,因为我要做到这一点试图创建一个热图,我有很多信息的方式,所以我希望通过将点聚类成一个均匀间隔的网格,我可以报告每个网格的最终数量。

谢谢!

如果它有什么区别,我通过SQL(点)获得我的信息,这些信息在细分前首先在指定点的某个半径范围内。

+0

我的意思是要找的是我有一个Point3D的集合,我想聚集成一小群点,也许每个集群的大小的计数。 – Setheron 2010-09-15 17:52:16

回答

0

你在找这样的吗?

var result = from p in points 
       group p by new { X = p.X/length, Y = p.Y/length } into g 
       select new 
       { 
        g.Key.X, 
        g.Key.Y, 
        Count = g.Count() 
       }; 

我不知道是否有采取订单的优势的方式。

+0

我不太了解上面的代码。你能稍微分解一下,这样我就可以判断它是否有帮助? – Setheron 2010-09-14 00:51:50

+0

@ Setheron:它只是将所有点分组到各自的单元格中,然后返回每个单元格的点数。 (另见:[group clause](http://msdn.microsoft.com/en-us/library/bb384063.aspx)) – dtb 2010-09-14 12:43:16

+0

所以我没有使用C#3.0 :( – Setheron 2010-09-15 17:40:34