2016-11-04 13 views
0

구멍이있는 오목한 다각형의 중간 축을 찾아야합니다. 나는 CGAL을 사용하고 있습니다. 나의 현재의 접근 방식은 다음과 같습니다어떻게 CGAL에서 세그먼트 delaunay 그래프에서 가장자리를 추출합니까?

  1. 이 결과 출력 세그먼트 (이등분선)
  2. 테스트는 세그먼트의 결과 세트는 다각형
  3. 안에 것인지 찾기 위해 각 세그먼트를 추출 다각형의 2D segment delaunay graph 구축 다각형의 중간 축을 형성한다

나는 SDG를 만들 수 있고 가장자리를 테스트해야하지만 나는 SDG의 가장자리를 추출하려고 애를 쓰고있다. g Voronoi 그래프. 점, 선 및 포물선과 같은 몇 가지 유형의 가장자리가 있어야합니다.

어떻게하면됩니까? 나는 올바른 길을 가고 있는가?

또한 제공된 메서드 중 하나를 사용하여 그래프의 가장자리를 반복 할 수 있다는 것을 알았습니다.이 메서드는 가장자리와 반대 정점을 반환합니다. 그러나이 방법을 사용하여 이등분선의 끝점을 얻으려면 어떻게해야합니까?

답변

1

draw_dual() 또는 draw_skeleton() 기능을 사용할 수 있습니다. 포물선은 세그먼트로 근사됩니다. 출력에 대한 더 많은 제어가 필요한 경우 메서드 구현을 볼 수 있습니다.

당신은 수집 개체에 대한 이러한 클래스를 사용할 수 있습니다 : 이것은 내가 필요 정확히 무엇

struct Collector 
{ 
    std::vector<Ray_2> rays; 
    std::vector<Line_2> lines; 
    std::vector<Segment_2> segs; 

    void operator<<(const Ray_2& p){rays.push_back(p);} 
    void operator<<(const Line_2& p){lines.push_back(p);} 
    void operator<<(const Segment_2& p){segs.push_back(p);} 
}; 
+0

. 고맙습니다. – Frank