加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 找到一组点的中心以顺时针对它们进行排序?

发布时间:2020-12-16 05:45:34 所属栏目:百科 来源:网络整理
导读:我想按顺时针方向对点矢量进行排序以形成多边形,但我需要适当的中心来完成.我已经尝试过averages方法,但有些要点根本没有正确排序.找到顺时针分拣点时工作中心的正确方法是什么? 凹陷部分失败了 谢谢 这是一张图片: 绿色圆圈是中心. 它应该看起来更像这样
我想按顺时针方向对点矢量进行排序以形成多边形,但我需要适当的中心来完成.我已经尝试过averages方法,但有些要点根本没有正确排序.找到顺时针分拣点时工作中心的正确方法是什么?

凹陷部分失败了

谢谢

这是一张图片:

绿色圆圈是中心.

它应该看起来更像这样:

解决方法

如果您没有预先定义的中心点,则“按顺时针顺序排序”的概念没有明确定义.

如果你所拥有的只是一堆你需要排序的点,并且你事先并不知道中心,那么这个问题通常没有一个解决方案.该问题有许多替代解决方案,每个解决方案都会为您提供不同的多边形.

此外,找到一个允许您通过CW(或CCW)排序重新创建原始多边形的中心只能用于特殊类别的多边形:所谓的star-shaped多边形.星形多边形的主要特性是可以在多边形内部找到一个点,多边形的整个内部是“可观察的”(我希望很明显没有定义“可观察”的含义).

如果您的多边形不是星形,那么这个中心点就不存在了.并且,由于这个原因,无法通过CW排序重新创建原始多边形.

图片中的牛轮廓显然不是星形多边形,这意味着您将永远无法通过对某个中心,任何中心周围的点进行排序来重新创建原始的牛轮廓.没有“正确的方法”.这不可能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读