从一组点中获得二维alpha形状边界顶点

Get 2d alpha shape boundary vertices from set of points

本文关键字:alpha 二维 边界 顶点 一组      更新时间:2023-10-16

我以前没有使用过CGAL,我想要的只是一个函数,它接受2d的点集和alpha参数,并返回代表边界多边形的点向量。我可以做一个alpha形状的物体,但我不知道如何从那里得到一个向量。编辑:一个警告是,可能有几个不连接的组件,我想知道这一点。有没有一种简洁的解能让我得到每个多边形的有序顶点向量?

我遇到过同样的问题,最后像上面的答案那样对所有顶点进行排序。也许,它会帮助别人。

但是,我对这种方法并不完全满意。@Flowers,你还有在边缘上迭代的代码吗?我做不到。对不起,我没有足够的信誉在评论中问这个问题

试试这样:

Alpha_shape_2 A(points.begin(), points.end(),
                FT(10000),
                Alpha_shape_2::GENERAL);
std::vector<Alpha_shape_2::Point> points;
for (Alpha_shape_2::Alpha_shape_vertices_iterator
       avit = A.alpha_shape_vertices_begin(),
       avit_end=A.alpha_shape_vertices_end();
       avit!=avit_end; ++avit)
{
  points.push_back(avit->point());
}

参考函数手册

结果是遍历边缘并按顺序找到顶点