我以前没有使用过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());
}
参考函数手册
结果是遍历边缘并按顺序找到顶点