近期遇到一个计算几何问题,需要从点集中重建一个粗略合理的几何形状。求出一定程度上反映这些散点轮廓的平面多边形,给出边的连接方式即可。如从下图的左图散点重建为右图的形状:
不一定要这么完整的凹包形状,能够大致反应点集的形状就行,但是找了一圈,没有发现能够在效率和适用性上都满足要求的方法,以下是找到的几篇博客。
几何算法:点集合构造简单多边形 - AndyZeng:https://www.cnblogs.com/andyzeng/p/3754005.html
问题:给定平面中n个点所组成的集合,将它们连接起来形成一条简单的封闭路径
思路:取x坐标最大的点A(如果最大x坐标的点不止一个,则取Y坐标最小的点),依次计算A点与其余各点的连线与水平线之间夹角的正切值,然后按照正切值排序,依次连接排序后的各点即组成一个简单图形
它是直接把已有的边缘点连接成凹包就行了,不适用我需要的场景,但是我最后的方法借鉴了它的思路;
从二维点集重建平面形状-浅议凹包算法 - Jumanco&Hide:http://www.tuicool.com/articles/iUvMjm
里面提到的滚边法,滚球法,三角化方法都是可行的思路,但是计算较慢,效率达不到要求;
用数