Il punto centrale nel diagramma è un bordo degenerato del diagramma Voronoi. Se si genera un diagramma Voronoi per una nuvola di punti irregolare, ogni vertice avrà grado 3. Un vertice con grado 4 (o più) può accadere solo quando due (o più) vertici coincidono. Ciò significa che c'è un bordo di lunghezza zero tra di loro. Ma quel bordo dovrebbe ancora avere un bordo corrispondente nella triangolazione di Delaunay. Il problema è che è arbitrario quale dei due possibili bordi si sceglie, perché il bordo di lunghezza zero non ha direzione associata.
Per visualizzare ciò di cui sto parlando, considera di iniziare con quattro punti meno distanziati regolarmente (in modo tale che iniziamo con solo vertici di grado 3) e tradurli gradualmente nelle loro posizioni regolari.
Possiamo farlo in due modi diversi, che portano entrambi al caso degenerato nel diagramma. Vedrai che finirai con due diverse triangolazioni Delaunay, che sono entrambi limiti validi per il caso degenerato:
Suppongo che al tuo codice manchi questo caso degenerato per una ragione o per l'altra, ma senza vedere effettivamente come calcoli la triangolazione di Delaunay dal diagramma Voronoi è impossibile indicarti oltre.
Si noti inoltre che avere degenerazioni ancora più elevate (di oltre quattro punti distribuiti ad angoli uguali attorno a un cerchio) richiederebbe probabilmente un'attenzione aggiuntiva:
Queste animazioni mostrano anche che (anche in un caso non degenerato), i corrispondenti bordi Voronoi e Delaunay non si incrociano necessariamente nella loro estensione. Ciò potrebbe rendere più difficile vedere che i 2 (o 3) bordi che triangolano il poligono regolare all'estremità corrispondono effettivamente a diversi bordi degeneri che sono tutti al centro. Si noti inoltre che in totale ci sono 5 diverse triangolazioni del pentagono e 14 triangolazioni dell'esagono (anche se non so se tutti i 14 possano essere ottenuti deformando una triangolazione non degenerata).
Modifica (per OP)
I diagrammi di Voronoi calcolati con Boost.polygon consentono di attraversare ogni vertice Voronoi e ogni bordo collegato a quei vertici (in senso orario o antiorario). In questo modo, è possibile creare un triangolo per ogni coppia di bordi (due bordi collegati si collegheranno a 3 celle).