The Voronoi diagram of convex objects
in the planeMenelaos Karavelas & Mariette Yvinec
Dagsthul Workshop, march 2003
The set of sites
1. Pseudo-circles sets of smooth convex objects• convex objects• smooth boundaries• at most two intersection points between the
boundaries of two objects
2. Pseudo-circles sets of piecewise smooth convex objects
3. General sets of convex objectsVoronoi diagram restricted outside the complement
of the union
Previous works
• Concrete and abstract Voronoi diagramsKlein 89
• Randomized incremental construction on abstract Voronoi diagramsKlein, Mehlhorn & Meiser 93
• The Voronoi diagram of curved objects.Alt & Schwarzkopf 95
• Dynamic additively weighted Voronoi diagrams in 2DKaravelas & Yvinec 02
The case of pseudo-circles setsof smooth convex objects
• Th1 : The bisector of two sites is – either empty– or a single curve homeomorphic to ]0,1[
• Th2 : The cell of each site is simply connected
The cell of an object
• Non empty cells
• Empty cells Hidden object Ai : any maximal disk in Ai
is included in some other Aj
ji
i
AxC
Ax
)(ji
i
AxC
Ax
)(
Th1 : The bisector of two sites is – either empty– or a single curve homeomorphic to ]0,1[
bisector emptyji AA
ji AA
Th2 : Voronoi cells are simply connected
connected is
in included not
in balls maximal of centers
of axis medial
)(
)()(
)(
i
j
iii
ii
AN
A
AASAN
AAS
1)
The Algorithm
Randomized incremental
The basic data structures• The 1-skeleton of the Voronoi
diagram or its dual graph• The covering graph: to keep track
of hidden sites
)K(AAMAM
A)K(A
A
ii
ii
i
,max ball
of covering a
site hidden a
that such sites of subset a
The conflict region :when inserting new site Apart of the Voronoi 1-skeletonwhere bitangent circles are• either internal and included in A• or external and intersecting A
Insertion of a new site• Find a first conflict or a covering of the new site• Find the while conflict region and repair the Voronoi
diagram• update the covering graph
Nearest neighbor query : the Voronoi hierarchy
ConstructionLevel 0 : the whole diagramLevel k : insert each sites in
level k-1 with propability
Query• At each level, the visited
sites have decreasing distances to the query point
• Expected number of sites visited : O(1/ )
+ a tree for each cell
To avoid checking all the neighbors of A to find one closer to q,
the normals through the Voronoi vertices of the cell of A are stored in a bb-tree
Time spend in each cell O( log n)nn-query time
n)O(log2
Find the first conflict or detect a hidden site
• Disjoint sites– issue a nn query for a point p of A– at least one edge of cell(nn(p)) conflicts A
• Intersecting sites– issue a nn query for any point p of ma(A)– if M(p) nn(p), at least one edge of cell(nn(p))
conflicts with A– if M(p) nn(p) prune ma(A) and iterate
Removal of object A
• Update the Voronoi diagram– insertion the neighbors of A in an annex
Voronoi diagram – copy back in the main diagram the filling of
cell(A)• Remove A from covering graph• Reinsert objects hidden by A
Voronoi diagram for pseudo-circles setExpected complexity
Objects disjoints No hidden Hidden
Insertion
Deletion n)O(log3
n)O(log2 O(n)
O(n) )O(n2
O(n)
Pseudo-circles sets of piecewise smooth objects
• add point site at the vertices• perturb the distance
)dim(),(),(' AApAp