Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:凸多边形的周长_Java_Arraylist_Polygon_Point_Convex - Fatal编程技术网

Java:凸多边形的周长

Java:凸多边形的周长,java,arraylist,polygon,point,convex,Java,Arraylist,Polygon,Point,Convex,我有一些点的数组列表。可以保证这些点是凸多边形的一部分 如何计算这个凸多边形的周长 更新:ArrayList中的点不符合任何顺序 更新2:所有点都是凸多边形边的一部分点是否按顺序排列?如果是这样,您只需要将每个顶点到下一个顶点的距离求和。如果这些点没有顺序,则不确定正确的顺序是不可能的。这是因为如果有3个以上的点,就有多个多边形可以形成 我不完全确定点形成凸多边形的约束是否足以从点云确定标准形状 我的猜测是,通过从列表中选取一个随机点,然后寻找最近的剩余点,可以建立一个规范顺序。从这里开始,它只

我有一些
点的
数组列表
。可以保证这些点是凸多边形的一部分

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

更新:ArrayList中的点不符合任何顺序


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

点是否按顺序排列?如果是这样,您只需要将每个顶点到下一个顶点的距离求和。

如果这些点没有顺序,则不确定正确的顺序是不可能的。这是因为如果有3个以上的点,就有多个多边形可以形成

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

我的猜测是,通过从列表中选取一个随机点,然后寻找最近的剩余点,可以建立一个规范顺序。从这里开始,它只是将连续点形成的直线的长度相加

编辑:再想一想,把这个想法划掉。它不会适用于所有情况。这就需要对点进行排列,并检查形成的多边形是否确实是凸的


关于如何检查多边形是否为凸多边形的问题已在此处提出并回答:

您可以将点转换为一类新的线段,然后将线段的长度相加。如果点的顺序不正确,您可以构造一个矩阵来确定谁相互连接,以及是否有完整的多边形。哪种方法是查找多边形周围的点对的正确方法?我应该如何排列列表?创建此多边形时是否使用了所有点?所有点都是edge-1的一部分:“要求家庭作业帮助的问题必须包括您迄今为止为解决问题所做工作的摘要,以及您解决问题所遇到的困难的描述。”它们的顺序不正确,我想排序方法是我真正的问题。我知道怎么做,但我想我会先向你挑战:仅使用点,你能找到多边形的中心吗?如果是这样,一旦你有了中心,你能用从中心到所有点的线的角度来排列它们吗?难道不可能通过寻找重叠的线段来确定这些点的排列顺序吗?@saviour,两条线段之间的交点肯定可以证明多边形不是凸的;因此,这是帮助解决难题的一部分。对,但如果使用所有点,不是只有一个没有交点的回路吗?@SaviourSelf如果存在一个排列没有交点但也不是凸的情况呢?假设所有点都可以形成凸多边形,这种情况是否可能?我不认为是这样,因为这样会造成交叉路口。