0

我有ArrayList一些Point-s。保证点是凸多边形的一部分。

如何计算这个凸多边形的周长?

更新: ArrayList 中的点没有任何顺序

更新 2:所有点都是凸多边形边缘的一部分

4

3 回答 3

1

积分是否有序?如果是这样,您只需要总结从每个顶点到下一个顶点的距离

于 2015-04-27T17:04:13.220 回答
1

将每两个连续点之间的距离相加。

于 2015-04-27T17:05:36.113 回答
0

如果点没有排序,如果没有确定正确的顺序是不可能的。那是因为如果有超过 3 个点,它们可以形成不止一个多边形。

我不完全确定点形成凸多边形的约束是否足以从点云确定规范形状。

我的猜测是,通过从列表中获取一个随机点,然后寻找最近的剩余点,您可以建立一个规范顺序。从那里它只是总结了由连续点形成的线的长度。

编辑:再想一想,放弃这个想法。它不适用于所有情况。这使您可以置换点并检查形成的多边形是否确实是凸的。

关于如何检查多边形是否凸的问题已在此处提出并回答:如何确定多边形是否复杂/凸/非凸?

于 2015-04-27T18:48:49.147 回答