Используя библиотеку генерации диаграммы voronoi/delaunay, найденную в этой программе, которая основана на оригинальной реализации Fortune его алгоритма, со случайным набором точек в качестве входных данных, я могу получить следующие выходные данные:
- Список ребер из триангуляции Delaunay, что означает, что для каждой входной точки я могу видеть, какие точки входа являются ее соседями, Они, похоже, не в каком-то определенном порядке.
- Список пар вершин из Диаграмма Вороного, который я могу использовать для рисования диаграммы Вороного по одной строке за раз. Опять же, видимо, в определенном порядке.
- Неименованный список пар точек, который, кажется, только тот же список, что и 2, но в другом порядке.
- Список вершин, образованных на диаграмме Вороного, также явно не в определенном порядке.
Ниже приведен пример данных из тестового запуска моей программы с использованием этой библиотеки:
Input points:
0 (426.484, 175.16)
1 (282.004, 231.388)
2 (487.891, 353.996)
3 (50.8574, 5.02996)
4 (602.252, 288.418)
Vertex Pairs:
0 (387.425, 288.533) (277.142, 5.15565)
1 (387.425, 288.533) (503.484, 248.682)
2 (277.142, 5.15565) (0, 288.161)
3 (387.425, 288.533) (272.213, 482)
4 (503.484, 248.682) (637.275, 482)
5 (503.484, 248.682) (642, 33.7153)
6 (277.142, 5.15565) (279.477, 0)
Voronoi lines?:
0 (279.477, 0) (277.142, 5.15565)
1 (642, 33.7153) (503.484, 248.682)
2 (503.484, 248.682) (637.275, 482)
3 (387.425, 288.533) (272.213, 482)
4 (277.142, 5.15565) (0, 288.161)
5 (387.425, 288.533) (503.484, 248.682)
6 (277.142, 5.15565) (387.425, 288.533)
Delaunay Edges:
0 (282.004, 231.388) (487.891, 353.996)
1 (602.252, 288.418) (487.891, 353.996)
2 (426.484, 175.16) (487.891, 353.996)
3 (426.484, 175.16) (602.252, 288.418)
4 (50.8574, 5.02996) (282.004, 231.388)
5 (426.484, 175.16) (282.004, 231.388)
6 (50.8574, 5.02996) (426.484, 175.16)
Vertices:
0 (277.142, 5.15565)
1 (503.484, 248.682)
2 (387.425, 288.533)
3 (0, 288.161)
4 (272.213, 482)
5 (637.275, 482)
6 (642, 33.7153)
7 (279.477, 0)
Хотя приведенные выше данные являются достаточными, если все, что мне нужно, это рисовать диаграммы Вороного и Делоне, недостаточно информации для фактической работы, которую я пытаюсь сделать с этими диаграммами. Мне нужен словарь многоугольников, образованных вершинами Вороного, проиндексированный входной точкой, вокруг которой образовался каждый многоугольник. Предпочтительно, для каждого многоугольника эти точки будут отсортированы по часовой стрелке. p >
С приведенной выше информацией я мог бы неявно назначать данные для каждого региона, при необходимости назначать данные по углам, указывать, в каких регионах обмениваются ребрами (с использованием границ Delaunay), и соответственно анализировать.
Итак, , как я могу использовать доступные мне данные, чтобы собрать словарь, в котором ключ является одной из входных точек, а данные, проиндексированные этим ключом, представляют собой список верунов Вороного, которые формировать окружающий многоугольник? Или, альтернативно, это информация где-то неявная в данных, которые мне даны?