gpt4 book ai didi

vb.net - 按连续点之间的距离对点列表进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:31:38 24 4
gpt4 key购买 nike

我有一个 List(Of Point) - 可能有数十万个点。看来,我可以使用它来正确绘制某些东西的唯一方法是根据它们之间的距离对其进行排序。

[我在场景中使用了 CCL 和凸包,但结果仍然是大量紧凑的散列 - 或者如果我之后按距中心的角度、斜率或其他方式对它们进行排序,则结果是漂亮的辐射线]

有什么方法可以根据连续点之间的距离对点列表进行排序吗?

我用过

Dim orderedByX As List(Of Point) = listOfPoints.OrderBy(Function(pt) pt.X).ToList()

最佳答案

您首先需要构造点、距离 对。例如,您可以通过使用同一列表的移位版本压缩列表来做到这一点。然后按距离对序列进行排序,并选择与距离对应的点。

Dim sortedPoint = listOfPoints.Zip(listOfPoints.Skip(1), Function(p1, p2) New With { .Point = p2, .Distance = (p2 - p1).Length }).OrderBy(Function(v) v.Distance).Select(Function(v) v.Point)

我仍然认为这不是您真正想要的。我认为生成的列表毫无用处。

关于vb.net - 按连续点之间的距离对点列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14593365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com