Graphics Reference
In-Depth Information
9.3.1
The Dobkin-Kirkpatrick Hierarchy
The Dobkin-Kirkpatrick (DK) hierarchy of a
d
-dimensional polyhedron
P
is a
sequence
P
0
,
P
1
,
...
,
P
k
of nested increasingly smaller polytopal approximations of
P
, where
P
P
0
and
P
i
+
1
is obtained from
P
i
by deletion of a subset of the vertices
of
P
i
. The subset of vertices is selected to form a maximal set of independent vertices
(that is, such that no two vertices in the set are adjacent to each other). The construc-
tion of the hierarchy stops with the innermost polyhedron
P
k
being a
d
-simplex (a
tetrahedron, in 3D). [Edelsbrunner87] shows that every polyhedron allows the con-
struction of a maximal set of independent vertices through a simple greedy algorithm.
In pseudocode, the algorithm is as follows.
=
// Given a set s of vertices, compute a maximal set of independent vertices
Set IndependentSet(Set s)
{
// Initialize i to the empty set
Set i = EmptySet();
// Loop over all vertices in the input set
for (all vertices v in s) {
// If unmarked and has 8 or fewer neighboring vertices...
if (!Marked(v) && Degree(v) <= 8) {
// Add v to the independent set and mark all of v's neighbors
i.Add(v);
s.MarkAllVerticesAdjacentToVertex(v);
}
}
return i;
}
The independent set is guaranteed to be a constant fractional size of the current set
of vertices, in turn guaranteeing a height of
O
(log
n
) for the DK hierarchy. Additionally,
during the hierarchy construction pointers are added to connect deleted features of
polyhedron
P
i
to new features of polyhedron
P
i
+
1
, and vice versa. These pointers help
facilitate efficient queries on the hierarchy.
Figure 9.5 illustrates the construction of the Dobkin-Kirkpatrick hierarchy for a
convex polygon
P
as specified by vertices
V
0
through
V
11
.
P
0
is set to be equivalent
to
P
.
P
1
is obtained from
P
0
by deleting, say, the vertices
V
1
,
V
3
,
V
5
,
V
7
,
V
9
, and
V
11
(which form a maximal independent set).
P
2
is similarly obtained from
P
1
by
deleting vertices
V
2
,
V
6
, and
V
10
. Because
P
2
is a 2-simplex (a triangle), the hierarchy
construction stops.
Given a DK hierarchy, many different queries can be answered in an efficient
manner. For example, the point on
P
closest to a query point
S
can be located through
a simple recursive procedure. As an illustration, consider the case of Figure 9.6.