Domanda

Il risultato della mia triangolazione Delaunay su 1000 punti univoci casuali non sembra affatto giusto (vedi immagine). Alcuni punti sembrano appartenere a un numero anormalmente elevato di triangoli ... Qualche idea?

alt text

Dettaglio: CGAL 3.4, windows XP

Questi sono i tipi che ho usato:

typedef CGAL::Exact_predicates_inexact_constructions_kernel K; 
typedef CGAL::Triangulation_2<K>         Triangulation; 
typedef Triangulation::Point             Point; 

Il display è il seguente:

delaunay_c::Triangulation::Edge_iterator eit = T.edges_begin(); 
delaunay_c::Triangulation::Edge_iterator end = T.edges_end(); 
for(;eit != end; ++eit) 
{ 
    delaunay_c::Triangulation::Segment s = T.segment(eit); 
    line.m_a = delaunay_c::convert(s.source()); 
    line.m_b = delaunay_c::convert(s.target()); 
    line.draw(); 
} 

La funzione di conversione converte semplicemente dal punto CGAL in un altro formato punto

EDIT: seguendo la risposta scelta, cambio semplicemente la triangolazione in delaunay_triangulation:

typedef CGAL::Delaunay_triangulation_2<K>         Triangulation;

E ha dato: alt text

È stato utile?

Soluzione

Stai usando una triangolazione normale piuttosto che una Delaunay?

Stai usando il seguente, giusto?

CGAL::Delaunay_triangulation_2<Traits,Tds>

http://www.cgal.org/ Manuale / 3.4 / doc_html / cgal_manual / Triangulation_2_ref / Class_Delaunay_triangulation_2.html # Cross_link_anchor_1152

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top