from application polytope
For a finite set of SITES
S the Voronoi region of each site is the set of points closest (with respect to Euclidean distance) to the given site. All Voronoi regions (and their faces) form a polyhedral complex which is a vertical projection of the boundary complex of an unbounded polyhedron P(S). This way VoronoiPolyhedron becomes a derived class from voronoipolyhedron.
Scalar
: numeric data type used for the coordinates, must be an ordered field. Default is Rational
.
CRUST_GRAPH
Graph of the crust as defined by Amenta, Bern, and Eppstein.
DELAUNAY_DIAGRAM
The Delaunay triangulation of the sites returned as a PolyhedralComplex
.
PolyhedralComplex<Scalar>
To construct the Delaunay diagram of a given set of sites in the plane, do this:
> $dd = new polytope::VoronoiPolyhedron(SITES=>[[1,0,0],[1,1,0],[1,-1,0],[1,0,1],[1,0,-1]])->DELAUNAY_DIAGRAM; > print rows_numbered($dd->VERTICES); 0:1 1 0 1:1 0 -1 2:1 0 0 3:1 0 1 4:1 -1 0
> print $dd->MAXIMAL_POLYTOPES; {0 1 2} {0 2 3} {2 3 4} {1 2 4}
DELAUNAY_GRAPH
Graph of the Delaunay decomposition Del(SITES
).
DELAUNAY_TRIANGULATION
Delaunay triangulation of the sites. (Delaunay subdivision, non-simplices are triangulated.)
ITERATED_DELAUNAY_GRAPH
ITERATED_VORONOI_GRAPH
Graph of the joint Voronoi diagram of the SITES
and the vertices of Vor(SITES). The coordinates (homogeneous, before projection) are stored as node attributes. The graph is truncated according to the BOUNDING_BOX
. For the default BOUNDING_BOX it may happen that some of the iterated Voronoi vertices are truncated. Create new objects of type VoronoiPolyhedron
to produce proper iterated Voronoi diagrams.
GeometricGraph<Scalar>
NN_CRUST_GRAPH
Graph of the nearest neighbor crust, as defined in:
> T. K. Dey and P. Kumar: A simple provable algorithm for curve reconstruction.
> Proc. 10th. Annu. ACM-SIAM Sympos. Discrete Alg., 1999, 893-894. .. Polygonal reconstruction of a smooth planar curve from a finite set of samples. Sampling rate of <= 1/3 suffices. ? Type: :''[[..:graph:Graph |Graph]]<[[..:common#Undirected |Undirected]]>''
NN_GRAPH
Graph of the nearest neighbors. This is a subgraph of NN_CRUST_GRAPH
.
N_SITES
Number of SITES
SITES
Homogeneous coordinates of the sites in case the polyhedron is Voronoi. Sites must be pairwise distinct.
Matrix<Scalar,NonSymmetric>
SITE_LABELS
Unique names assigned to the SITES
. Works like VERTEX_LABELS
.
VORONOI_DIAGRAM
The Voronoi regions as polyhedral complex. Polyhedron indices correspond to site indices.
PolyhedralComplex<Scalar>
To construct the Voronoi diagram of a given set of sites in the plane, do this:
> $vd = new polytope::VoronoiPolyhedron(SITES=>[[1,0,0],[1,1,0],[1,-1,0],[1,0,1],[1,0,-1]])->VORONOI_DIAGRAM; > print rows_numbered($vd->VERTICES); 0:1 1/2 -1/2 1:1 1/2 1/2 2:1 -1/2 1/2 3:1 -1/2 -1/2 4:0 1 -1 5:0 1 1 6:0 -1 1 7:0 -1 -1
> print $vd->MAXIMAL_POLYTOPES; {0 1 2 3} {0 1 4 5} {2 3 6 7} {1 2 5 6} {0 3 4 7}
VORONOI_GRAPH
Graph of the Voronoi diagram of the SITES
. The homogeneous coordinates after projection are stored as node attributes. The graph is truncated according to the BOUNDING_BOX. All vertices of the Voronoi diagram are visible (and represented in the VORONOI_GRAPH
) for the default BOUNDING_BOX.
GeometricGraph<Scalar>
VORONOI_VERTICES
Vertices of the Voronoi diagram of the SITES
.
Matrix<Scalar,NonSymmetric>
These methods are for visualization.
VISUAL_CRUST()
Draw a Voronoi diagram, its |dual graph and the crust. Use the interactive features of the viewer to select.
Visual::Graph::decorations
VISUAL_NN_CRUST()
Draw a Voronoi diagram, its dual graph and the nearest neighbor crust. Use the interactive features of the viewer to select.
Visual::Graph::decorations
VISUAL_VORONOI()
Visualize the Voronoi diagram together with its sites.
Visual::Polygons::decorations