Voronoi Diagrams
Let S be a set of points in the plane called sites.
For any point p in the plane let close(p) be
the set of sites that realize the closest distance between p
and the sites of S . For most points p , close(p)
consists of only a single site. For some, close(p) contains
two or more sites. The points p where close(p)
contains two or more sites form the Voronoi diagram of S .
There is also a furthest site Voronoi diagram. For any point p
of the plane let furthest(p) be the set of sites that realize
the furthest distance between p and the sites of S .
The points p where furthest(p) contains two
or more sites form the furthest site Voronoi diagram S .
Properties of Voronoi Diagrams
- A Voronoi diagram has a graph-like structure:
- The nodes are the points
p with |close(p)|>=3 .
- The edges are the maximal connected sets of points
p
with |close(p)|=2 .
- The faces are the maximal connected sets of points
p
with |close(p)|=1. .
- Let
e be an edge of the Voronoi diagram such that s
and t are the two sites of S with close(p)={s,t}
for all points of e . Then e is a straight
line segment contained in the perpendicular bisector of s
and t .
- Consider a face
f of the Voronoi diagram and let s
be the site such that close(p)={s} for all points of f .
- The distance of all points of
f to s is smaller
than to all other sites.
f contains s .
f is an open convex polygonal region.
Representation of Voronoi Diagrams
Voronoi diagrams are represented by parameterized
plane map of type GRAPH<CIRCLE,POINT> .
- There is a node in the graph for every node of the Voronoi diagram.
- We place a "node at infinity" on every unbounded edge of the Voronoi
diagram.
- There is an edge in the graph for every edge of the Voronoi diagram.
Node and edge labels give information about the positions of the nodes of
the graph in the plane and about the Voronoi regions:
- Every edge is labeled with the site whose region lies to the left.
See also Orientation
and Sidedness.
- Every proper node
v is labeled by a CIRCLE(a,b,c)
where a,b,c are distinct sites whose regions are incident
to v . The center of the circle is the position of v
in the plane.
- Every node
v at infinity lies on the perpendicular bisector
of two sites a and b . v is labeled
by CIRCLE(a,x,b) where x is an arbitrary point
collinear with a and b and v
lies to the left of the oriented segment from a to b .
Remark: We use the notation CIRCLE (POINT) to indicate
that the algorithm works both for circles (points) and rat_circles
(rat_points ). See also Writing
Kernel Independent Code.
Running Time
The running time of the algorithms for computing Voronoi diagrams is O(nlogn).
Verification of Voronoi Diagrams
The function
bool Is_Voronoi_Diagram(const GRAPH<CIRCLE,POINT>& G,
delaunay_voronoi_kind kind)
checks whether G is a Voronoi Diagram of the points associated
with its nodes. The flag kind allows to choose between the nearest
(kind=NEAREST ) and furthest (kind=FURTHEST ) site
version. See also Verification of Geometric
Structures. |
See also:
Data
Types for 2-D Geometry
Parameterized Graphs
Orientation and Sidedness
Writing Kernel Independent Code
Verification of Geometric Structures
Duality between Voronoi and
Delaunay Diagrams
Delaunay Diagrams
Applications:
Extremal Circles
Minimum Width and Minimum Area Annuli
Curve Reconstruction
Geometry Algorithms
Geometry
Graphs
GeoWin
Manual Entries
Manual
Page of Geometry Algorithms
|