自己写的点云点集凹包求解

自己写的点云点集凹包求解,第1张

近期遇到一个计算几何问题,需要从点集中重建一个粗略合理的几何形状。求出一定程度上反映这些散点轮廓的平面多边形,给出边的连接方式即可。如从下图的左图散点重建为右图的形状:

网上流传的版本都是求凸包,而不是求凹包,于是自己写一个版本的代码,有瑕疵,但是基本可以用;

思路:随机取一个点作为原点A,依次计算A点与其余各点的连线的正切值,以A点为原点,分割为多个正切值的区间,每个正切值的区间内取一个最远的点作为边缘点,依次连接边缘点即组成一个粗略的凹包图形。

如上图,以A点作为原点,把它的360区域按照正切值分为了4个区域,每个区域找最远的点作为边缘点。这里只分了4个区域作为示意图,实际可以分很多个区域,效果会好很多。

C++ 的代码,如下:

vector> contour_s;
    vector  threshold;
    int bin_num = 30;
    for (int i = 0; i <= bin_num; i

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/676174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存