Algorithm 查找与一组点对应的形状

Algorithm 查找与一组点对应的形状,algorithm,graph,point,Algorithm,Graph,Point,我现在正在处理一个小问题 我正在从一个文件中读取一组点,我被要求找到它们内部的区域问题更多,但我现在不担心这一点。我得到了点的数量,问题是如果点不是边遍历,我的面积函数就不起作用 例如:如果点集为[0,0,1,0,1,1,1,0,1],它将正确地将面积计算为1。但是,如果点集被指定为[0,0,1,1,1,0,0,1],它将返回0作为区域 我怎样才能得到点列表,并让它找到顺时针或逆时针的遍历,这无关紧要?我不熟悉任何这样做的快速算法 注意:这不是凸包问题。形状不一定是凸的。例如,点集[0,0,0,

我现在正在处理一个小问题

我正在从一个文件中读取一组点,我被要求找到它们内部的区域问题更多,但我现在不担心这一点。我得到了点的数量,问题是如果点不是边遍历,我的面积函数就不起作用

例如:如果点集为[0,0,1,0,1,1,1,0,1],它将正确地将面积计算为1。但是,如果点集被指定为[0,0,1,1,1,0,0,1],它将返回0作为区域

我怎样才能得到点列表,并让它找到顺时针或逆时针的遍历,这无关紧要?我不熟悉任何这样做的快速算法


注意:这不是凸包问题。形状不一定是凸的。例如,点集[0,0,0,2,1,1,2,2,2,0]是有效的形状

如果顺序很重要,你不应该谈论集合。如果与示例中相同的点集定义了两个不同的遍历,那么查找遍历是什么意思?请考虑点集[0,0,0,2,1,1.5,2,2,2,2,0]。我把中间点往上移了一点。这些信息不足以获得明确的形状。它将是一个正方形,并从中切出一个三角形,但无法知道切口是在顶部、底部还是侧面,因为我将点从1移动到了1.5,这些形状有不同的区域。弄清楚哪一面有切口,你的身体就会好得多。