2010-09-13 15 views
0

J'ai un ensemble P de points 2D que je pouvais aimer à se regrouper dans une 2D grille régulièrement espacés, où chaque cellule est la longueur X.uniforme Grille Subdivision des points en C#

Je veux le faire parce que je suis en essayant de créer une carte de chaleur, et j'ai beaucoup d'informations donc j'espère en regroupant les points dans une grille uniformément espacée je peux juste rapporter le compte final de chaque grille.

Merci!

Si cela fait une différence, je reçois mes informations via SQL (les points) qui se trouvent dans un certain rayon d'un point spécifié avant la subdivision.

+0

Ce que je voulais dire, c'est que j'ai une collection de Point3D que je voudrais regrouper en un plus petit groupe de points avec peut-être le nombre de taille de chaque groupe. – Setheron

Répondre

0

Vous cherchez quelque chose comme ça?

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() 
       }; 

Je ne sais pas s'il y a un moyen de tirer parti de l'ordre de des points.

+0

Je ne comprends pas vraiment le code ci-dessus. Pourriez-vous le décomposer légèrement afin que je sache si c'est utile? – Setheron

+0

@Setheron: Il regroupe simplement tous les points dans leur cellule respective, puis retourne le nombre de points pour chaque cellule. (Voir aussi: [clause de groupe] (http://msdn.microsoft.com/en-us/library/bb384063.aspx)) – dtb

+0

donc je n'utilise pas C# 3.0 :( – Setheron

Questions connexes