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?
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:
Soluzione
Stai usando una triangolazione normale piuttosto che una Delaunay?
Stai usando il seguente, giusto?
CGAL::Delaunay_triangulation_2<Traits,Tds>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow