resqpy.olio.triangulation.voronoi

resqpy.olio.triangulation.voronoi(p, t, b, aoi: Polyline)[source]

Returns dual Voronoi diagram for a Delauney triangulation.

Parameters
  • p (numpy float array of shape (N, 2)) – seed points used in the Delauney triangulation

  • t (numpy int array of shape (M, 3)) – the Delauney triangulation of p as returned by dt()

  • b (numpy int array of shape (B,)) – clockwise sorted list of indices into p of the boundary points of the triangulation t

  • aoi (lines.Polyline) – area of interest; a closed clockwise polyline that must strictly contain all p (no points exactly on or outside the polyline)

Returns

c, v where – c is a numpy float array of shape (M+E, 2) being the circumcircle centres of the M triangles and E boundary points from the aoi polygon line; and v is a list of N Voronoi cell lists of clockwise ints, each int being an index into c

Notes

the aoi polyline forms the outer boundary for the Voronoi polygons for points on the outer edge of the triangulation; all points p must lie strictly within the aoi, which must be convex; the triangulation t, of points p, must also have a convex hull; note that the dt() function can produce a triangulation with slight concavities on the hull, especially for smaller values of its container_size_factor argument