我之前没有使用过CGAL,而我想要的只是一个带有2d点和alpha参数的函数,并返回一个代表边界多边形的点向量。我可以制作一个alpha形状的物体,但我不知道如何从那里得到一个矢量。 编辑:一个警告是,可能有几个断开连接的组件,我想以某种方式知道。有没有一个简洁的解决方案,我得到每个多边形的有序顶点向量?
答案 0 :(得分:0)
尝试这样的事情:
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());
}
请参阅函数here的参考手册。
答案 1 :(得分:0)
改为越过边缘并使用它来按顺序找到顶点。
答案 2 :(得分:0)
我遇到了同样的问题,最后最终排序了所有顶点,如顶部答案here中建议的那样。也许,它会帮助别人。
但是,我对这种方法并不完全满意。 @Flowers,你还有代码用于迭代边缘吗?我无法做到这一点。对不起,我没有足够的声誉在评论中提出这个问题。