# Decomposition Problems in Computational Geometry (Thesis)

Report ID:
TR-368-92
Authors:
Date:
March 1992
Pages:
118

#### Abstract:

Decomposition problems are of major importance in computational
geometry, as they allow us to express complicated objects in terms of
simpler ones, which are in general easier to process, and often lead
to more efficient algorithms. In this thesis, we present two
decomposition algorithms on three-dimensional polyhedra, one to
partition the boundary of a polyhedron of arbitrary genus into a small
number of "well-behaved" pieces, the other to partition a polyhedron
of zero genus into tetrahedra. The first algorithm decomposes the
boundary of a polyhedron of \$r\$ reflex angles into at most \$10r - 2\$
connected pieces, each of which lies on the boundary of its convex
hull. A remarkable feature of this result is that the number of these
convex-like pieces is independent of the number of vertices.
Furthermore, it is linear in \$r,\$ which contrasts with a quadratic
worst-case lower bound on the number of convex pieces needed to
decompose the polyhedron itself. The number of new vertices
introduced in the process is \$0(n),\$ and the decomposition can be
computed in \$0(n + r log r)\$ time. The second algorithm decomposes a
polyhedron of zero genus (a polyhedron homeomorphic to a
three-dimensional ball) that has \$n\$ vertices and \$r\$ reflex angles
into a collection of \$0(n + r sup 2^)\$ tetrahedra. The algorithms
runs in \$0((n + r sup 2^)\$ log \$r)\$ time and requires \$0(n + r sup
2^)\$ space. Up to within a constant factor, the number of tetrahedra
produced is optimal in the worst case. Discussion on an
implementation of the second algorithm in the programming language C
concludes the thesis. It involves the issues of how to carry out some
of the tasks outlined in the theoretical description, how to represent
the entities participating in the different stages of the algorithm,
and how to deal with finite precision arithmetic.