2

アポロニウス図に基づいて加重ボロノイを生成しようとしています。私はCGALライブラリを使用しています。アポロニウスから面と頂点を取得する方法の良い例が見つかりませんでした。次のtypedefがあります:

typedef double                                                                  NT;
typedef CGAL::Cartesian< NT>                                                    KernelCartes;
typedef CGAL::Ray_2<KernelCartes>                                               Cartes_Ray;
typedef CGAL::Line_2<KernelCartes>                                              Cartes_Line;
typedef CGAL::Segment_2<KernelCartes>                                           Cartes_Segment;
typedef std::list<Cartes_Ray>                                                   Cartes_RayList;
typedef std::list<Cartes_Line>                                                  Cartes_LineList;
typedef std::list<Cartes_Segment>                                               Cartes_SegmentList;
typedef CGAL::Point_2<KernelCartes>                                             Cartes_Point;
typedef CGAL::Apollonius_graph_traits_2<KernelCartes>                           ApoTraits;
typedef CGAL::Apollonius_graph_2<ApoTraits>                                     Apo_Graph;
typedef Apo_Graph::Site_2                                                       Apo_Site;

以下では、アポロニウス図を作成しようとしています。WVD は加重ボロノイ図 (Apo_Graph) です。

    WVD.clear();
    double Weight;
    foreach(QPointF point,List_Nodes)
    {
        Weight = NewRandomNumber(1,10);
        Apo_Site k(Cartes_Point(point.x(),point.y()),Weight);
        WVD.insert(k);
    }

ここで、重み付けされたボロノイと生成された面 (およびその後の各面の頂点) にアクセスする方法を知る必要があります。

4

2 に答える 2