【问题标题】:CGAL - get Edge from Segment_2CGAL - 从 Segment_2 获取边缘
【发布时间】:2013-08-01 17:41:58
【问题描述】:

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

现在我得到一个片段:

Segment_2 segment = polygon.edge(i)

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

如何将Segment_2 转换为Edge?就像有一个t.segment(Edge e) 可以从Edge 得到一个Segment_2,我想要一些相反的东西(Segment_2Edge)。

现在我完全确定该段属于 Triangulation_2 上的一条边,我该如何获取它?可能是triangulation.edge(Segment_2) 之类的东西。

请帮忙。

【问题讨论】:

    标签: c++ geometry computational-geometry cgal


    【解决方案1】:

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

    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
    }
    

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多