1

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

现在我得到一个片段,其中:

Segment_2 segment = polygon.edge(i)

从到i的索引在哪里。0polygon.size()

如何将 an 转换Segment_2为 an Edge?就像从at.segment(Edge e)中得到 a一样,我想要一些相反的东西(to )。Segment_2EdgeSegment_2Edge

现在我完全确定这个段属于 Triangulation_2 上的一条边,我怎样才能得到它?可能是这样的triangulation.edge(Segment_2)

请帮忙。

4

1 回答 1

3

如果你已经保留了对应于线段的两个点的两个顶点句柄,你可以使用这个函数:

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
}
于 2013-08-05T15:41:46.763 回答