我想按顺时针方向对点矢量进行排序以形成多边形,但我需要适当的中心来完成.我已经尝试过averages方法,但有些要点根本没有正确排序.找到顺时针分拣点时工作中心的正确方法是什么?
凹陷部分失败了
谢谢
这是一张图片:
绿色圆圈是中心.
它应该看起来更像这样:
解决方法
如果您没有预先定义的中心点,则“按顺时针顺序排序”的概念没有明确定义.
如果你所拥有的只是一堆你需要排序的点,并且你事先并不知道中心,那么这个问题通常没有一个解决方案.该问题有许多替代解决方案,每个解决方案都会为您提供不同的多边形.
此外,找到一个允许您通过CW(或CCW)排序重新创建原始多边形的中心只能用于特殊类别的多边形:所谓的@L_502_0@多边形.星形多边形的主要特性是可以在多边形内部找到一个点,多边形的整个内部是“可观察的”(我希望很明显没有定义“可观察”的含义).
如果您的多边形不是星形,那么这个中心点就不存在了.并且,由于这个原因,无法通过CW排序重新创建原始多边形.
图片中的牛轮廓显然不是星形多边形,这意味着您将永远无法通过对某个中心,任何中心周围的点进行排序来重新创建原始的牛轮廓.没有“正确的方法”.这不可能.