我有一个 XY 点列表,我想按给定距离对它们进行分组,假设它们之间距离为 x 的所有点都应分组在不同的列表中。
基本上,如果我有 A=(0,0)、B=(0,1)、C=(0,2),我想对 maxDistance 为 1 的所有点进行分组,以获得 :[[A, B],[C]];
我不太明白你的问题,所以我不太确定你想如何进行分组,但这至少可能会让你朝着正确的方向开始。
(用 VB 编写,但用 C# 几乎相同 - 您也没有说明您的语言偏好):
Dim MyPoints As New List(Of Point)
MyPoints.Add(New Point(0, 0))
MyPoints.Add(New Point(0, 1))
MyPoints.Add(New Point(0, 2))
Dim query = From pt1 In MyPoints
From pt2 In MyPoints
Where Not (pt1.Equals(pt2))
Select New With {.pt1 = pt1, .pt2 = pt2, .dist = Math.Sqrt((pt1.X - pt2.X) ^ 2 + (pt1.Y - pt2.Y) ^ 2)}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)