Title: An Introduction to Computational Geometry
1An Introduction to Computational Geometry
Joseph S. B. Mitchell Stony Brook University
2Voronoi Diagrams
3Historical Origins and Diagrams in Nature
René Descartes 1596-1650 1644
Gravitational Influence of stars
Dragonfly wing
Giraffe pigmentation
Honeycomb
Constrained soap bubbles
Ack StreinuBrock
4Post Office Problem
Starbucks
Query point
Post offices
5Voronoi Diagram
- Partition the plane according to the equivalence
classes V(Q) (x,y) the closest sites of S
to (x,y) is exactly the set Q ? S - Q 1 Voronoi cells (2-faces)
- Q 2 Voronoi edges (1-faces)
- Q ? 3 Voronoi vertices (0-faces)
Q cocircular
6Example
p
p
Voronoi cell of p
7Delaunay Diagram
- Join pi to pj iff there is an empty circle
through pi and pj - Equivalent definition Dual of the Voronoi
diagram - Applet Chew
A witness to the Delaunayhood of (pi , pj)
If no 4 points cocircular (degenerate), then
Delaunay diagram is a (very special)
triangulation.
pi
pj
8Voronoi and Delaunay Properties
- The planar dual of Voronoi, drawn with nodes at
the sites, edges straight segments, has no
crossing edges Delaunay. It is the Delaunay
diagram, D(S) (defined by empty circle property). - Combinatorial size ? 3n-6 Voronoi/Delaunay
edges ? 2n-5 Voronoi vertices (Delaunay faces)
O(n) - A Voronoi cell is unbounded iff its site is on
the boundary of CH(S) - ?CH(S) boundary of unbounded face of D(S)
- Delaunay triangulation lexico-maximizes the angle
vector among all triangulations - In particular, maximizes the min angle
9Voronoi and Delaunay Properties
- In any partition of S, SB ? R, into blue/red
points, any blue-red pair that is shortest B-R
bridge is a Delaunay edge. - D(S) is connected
- MST ? D(S) (MSTmin spanning tree)
- NNG ? D(S) (NNGnearest neighbor graph)
- Voronoi/Delaunay can be built in time O(n log n)
- Divide and conquer
- Sweep
- Randomized incremental
- VoroGlide applet
10Delaunay Edge Flip Algorithm
Lawson Edge Swap Legalize BKOS
- Assume No 4 co-circular points, for simplicity.
- Start with any triangulation
- Keep a list (stack) of illegal edges
- ab is illegal if InCircle(a,c,b,d)
- iff the smallest of the 6 angles goes up if flip
- Flip any illegal edge update legality status of
neighboring edges - Continue until no illegal edges
- Theorem A triangulation is Delaunay iff there
are no illegal edges (i.e., it is locally
Delaunay) - Only O(n2 ) flips needed.
d
b
Locally non-Delauany
a
c
11Connection to Convex Hulls in 3D
- Delaunay diagram ? lower convex hull of the
lifted sites, (xi , yi , xi 2 yi 2 ), on the
paraboloid of revolution, zx2 y2 - Upper hull ? furthest site Delaunay
- 3D CH applet
12Voronoi and Delaunay
- Algorithms
- Divide and conquer (first O(n log n))
- Sweep
- Randomized incremental
- Any algorithm that computes CH in R3 , e.g.,
QHull
Qhull website
13Fortunes Sweep Algorithm
Applet
Ack GuibasStolfi
14Parabolic Front
Applet
Ack GuibasStolfi
15Site Events
a)
b)
c)
Applet
Ack GuibasStolfi
16Circle Events
Applet
Ack GuibasStolfi
17Scheduling Circle Events
Applet
Ack GuibasStolfi
18Incremental Construction
- Add sites one by one, modifying the Delaunay
(Voronoi) as we go - Join vi to 3 corners of triangle containing it
- Do edge flips to restore local Delaunayhood
- If added in random order, simple Backwards
analysis shows expected time O(n log n)
Guibas, Knuth, Sharir
19Example
20Voronoi Extensions
- Numerous ! see Okabe, Boots, Sugihara, Chiu
- Different metrics
- Higher dimensions
- Delaunay in Rd ? lower CH in Rd1
- O( n log n n ?(d1)/2 ? )
- Order-k, furthest-site
- Other sites Voronoi of polygons, medial axis
- Additive/multiplicative weights power diagram
- ?-shapes a powerful shape representation
GeoMagic, biogeometry at Duke
21VRONI Fast, robust Voronoi of polygonal domains
Incremental algorithm
22(No Transcript)
23Computing offsets with a Voronoi diagram
24Alpha Shapes, Hulls
Erase with a ball of radius ? to get ?-shape.
Straighten edges to get ?-hull
25(No Transcript)
26?-Shapes
- Theorem For each Delaunay edge, e(pi,pj),
there exists ?min(e)gt0 and ?max(e)gt0 such that e
? ?-shape of S iff ?min(e) ? ? ? ?max(e). - Thus, every alpha-hull edge is in the Delaunay,
and every Delaunay edge is in some alpha-shape.
Applet