¿Cómo puedo obtener un diccionario de celdas a partir de estos datos del diagrama de Voronoi?

Utilizando la biblioteca de generación de diagramas voronoi / delaunay encontradaen este programa, que se basa en la implementación original de Fortune dehis algoritmo, con un conjunto aleatorio de puntos como datos de entrada, puedo obtener los siguientes datos de salida:

Una lista de los bordes de laDelaunay Triangulación, lo que significa que para cada punto de entrada, puedo ver qué puntos de entrada son sus vecinos. No parecen estar en ningún orden en particular. Una lista de los pares de vértices deVoronoi Diagram, que puedo usar para dibujar el diagrama de Voronoi una línea a la vez. De nuevo, aparentemente sin ningún orden en particular. Una lista sin nombre de pares de puntos, que parece ser la misma lista que 2, pero en un orden diferente. Una lista de los vértices formados en el Diagrama de Voronoi, aparentemente también sin ningún orden en particular.

Aquí hay un ejemplo de datos de una ejecución de prueba de mi programa usando esta biblioteca:

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)

Si bien los datos anteriores son adecuados si todo lo que necesito es dibujar los diagramas de Voronoi y Delaunay, no es suficiente información para el trabajo real que estoy tratando de hacer con estos diagramas. @o que necesito es un diccionario de polígonos formados por los vértices de Voronoi, indexados por el punto de entrada alrededor del cual se formó cada polígono. Preferiblemente, para cada polígono, estos puntos se ordenarían en el sentido de las agujas del reloj.

on la información anterior, podría asignar implícitamente datos a cada región, asignar datos a las esquinas si es necesario, decir qué regiones comparten bordes (utilizando los bordes de Delaunay) y hacer el análisis en consecuencia.

Así que en resumen, ¿cómo puedo usar los datos disponibles para armar un diccionario en el que la clave es uno de los puntos de entrada, y los datos indexados por esa clave es una lista de los vértices de Voronoi que forman el polígono circundante? O, alternativamente, ¿esa información está implícita en algún lugar de los datos que me han dado?

Respuestas a la pregunta(10)

Su respuesta a la pregunta