【问题标题】:Get 2d alpha shape boundary vertices from set of points从点集获取 2d alpha 形状边界顶点
【发布时间】:2015-06-05 18:31:35
【问题描述】:

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

【问题讨论】:

    标签: c++ cgal


    【解决方案1】:

    我遇到了同样的问题,最后按照最佳答案here 中的建议对所有顶点进行了排序。也许,它会对某人有所帮助。

    不过,我对这种方法并不完全满意。 @Flowers,您还有用于迭代边缘的代码吗?我无法做到这一点。抱歉,我的声望不够,无法在评论中提问。

    【讨论】:

      【解决方案2】:

      试试这样的:

      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的参考手册。

      【讨论】:

      • 谢谢,但这几乎是我现在所拥有的,但顶点似乎没有按顺序排列。
      • 您要什么订单?
      • 对于每个多边形,我想以 cw 或 ccw 顺序获取顶点
      【解决方案3】:

      最终反而越过边缘并用它来按顺序找到顶点。

      【讨论】:

        猜你喜欢
        • 2013-05-26
        • 2015-12-13
        • 1970-01-01
        • 2021-01-24
        • 1970-01-01
        • 2020-02-11
        • 1970-01-01
        • 2013-03-26
        • 2014-05-29
        相关资源
        最近更新 更多