Центральная точка на вашей диаграмме является вырожденным ребром диаграммы Вороного. Если вы сгенерируете диаграмму Вороного для нерегулярного облака точек, каждая вершина будет иметь степень 3. Вершина с степенью 4 (или более) может произойти только тогда, когда две (или более) вершины совпадают. Это означает, что между ними есть ребро нулевой длины. Но это ребро должно иметь соответствующее ребро в триангуляции Делоне. Проблема в том, что это произвольно, какое из двух возможных ребер вы выберете, потому что ребро нулевой длины не имеет связанного направления.
Чтобы визуализировать то, о чем я говорю, подумайте о том, чтобы начать с четырех менее равномерно расположенных точек (чтобы мы начинали только с вершин степени 3) и постепенно перевести их в их обычные положения.
Мы можем сделать это двумя различными способами, которые оба приведут к вырожденному случаю на вашей диаграмме. Вы увидите, что вы получите две разные триангуляции Делоне, которые являются допустимыми пределами для вырожденного случая:
Я предполагаю, что ваш код пропускает этот вырожденный случай по той или иной причине, но фактически не видя, как вы вычисляете триангуляцию Делоне по диаграмме Вороного, невозможно указать вам дальше, чем это.
Также обратите внимание, что наличие еще более высоких вырождений (более чем на четыре точки, распределенных под равными углами вокруг круга), вероятно, потребует дополнительного внимания:
Эти анимации также показывают, что (даже в невырожденном случае) соответствующие ребра Вороного и Делоне не обязательно фактически пересекаются в пределах их конечной протяженности. Это может затруднить понимание того, что 2 (или 3) ребра, которые триангулируют правильный многоугольник на конце, на самом деле соответствуют нескольким вырожденным ребрам, которые все находятся в центре. Также отметим, что всего существует 5 различных триангуляций пятиугольника и 14 триангуляций шестиугольника (хотя я не знаю, все ли 14 можно получить путем деформации невырожденной триангуляции).
Редактировать (по OP)
Диаграммы Вороного, вычисленные с помощью Boost.polygon, позволяют проходить через каждую вершину Вороного, и каждое ребро связано с этими вершинами (по часовой стрелке или против часовой стрелки). Таким образом, можно создать один треугольник для каждой пары ребер (два соединенных ребра будут связаны с 3 ячейками).