我正在使用CGAL,我有一个使用某些顶点创建的多边形。

现在我得到了一个细分,包括:

Segment_2 segment = polygon.edge(i)

其中i是从0polygon.size()的索引。

如何将Segment_2转换为Edge?就像有一个t.segment(Edge e)Segment_2中获取一个Edge一样,我希望得到相反的信息(Segment_2Edge)。

现在,我完全确定该线段属于Triangulation_2上的Edge,该如何获取?像triangulation.edge(Segment_2)这样的东西。

请帮忙。

最佳答案

如果保留了与线段两点相对应的两个顶点控点,则可以使用此功能:

bool
CGAL::Triangulation_2< Traits, Tds >::
is_edge(Vertex_handle va,
        Vertex_handle vb,
        Face_handle & fr,
        int & i
)

假设v1v2是顶点句柄,而t是您的三角测量对象:
Face_handle fh;
int i;
if(t.is_edge(v1, v2, fh, i)) {
  Edge my_edge = Edge(fh, i);
  // ... use your Edge
}

关于c++ - CGAL-从Segment_2获取Edge,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18000979/

10-12 00:39
查看更多