从点集中获取2d alpha形状边界顶点

时间:2015-06-05 18:31:35

标签: c++ cgal

我之前没有使用过CGAL,而我想要的只是一个带有2d点和alpha参数的函数,并返回一个代表边界多边形的点向量。我可以制作一个alpha形状的物体,但我不知道如何从那里得到一个矢量。 编辑:一个警告是,可能有几个断开连接的组件,我想以某种方式知道。有没有一个简洁的解决方案,我得到每个多边形的有序顶点向量?

3 个答案:

答案 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,你还有代码用于迭代边缘吗?我无法做到这一点。对不起,我没有足够的声誉在评论中提出这个问题。

相关问题