我想对一组点进行顺时针排序以形成一个多边形,但我需要正确的中心点来完成此操作。我尝试了平均值方法,但其中一些点根本没有正确排序。在按顺时针方式排序点时,找到适当的中心的正确方法是什么?
它在凹部分失败了。
谢谢。
这是一张图片: 绿色圆圈是中心。
它应该看起来更像这样:
它在凹部分失败了。
谢谢。
这是一张图片: 绿色圆圈是中心。
它应该看起来更像这样:
我认为最可靠的策略(除了重新设计程序/系统以避免出现此问题)是尽量减少多边形的总周长。
这不是一个简单的问题,但以下启发式方法应该能够很好地解决:
这只是一种启发式方法,而不是解决方案。我不确定它是否保证能够产生一个多边形。
以任何一个点为中心,你应该能够确定集合中所有点的距离和角度,并在此之后按角度排序很简单。然而,你选择的中心点将影响排序顺序,因此在选择中心点之前很难知道“正确”的顺序应该是什么。
因此,如果你选择重心作为中心(看起来是个不错的选择),但有些点相对于该点被错误地排序,那么我会说你的排序代码存在问题。或者,如果你对排序顺序有某种期望,但算法没有满足,那么我会说你的假设(排序顺序或中心位置)之一是错误的。