Adding motion to geometric data structures creates a host of new computational issues. This thesis explores the issues encountered when using two different motion models---smooth, continuous motion of objects moving along algebraic trajectories and the discrete steps characteristic of physical simulations and optimization processes. The focus in this thesis is on how to perform the computations efficiently while maintaining exactness, rather than asymptotic complexity or other theoretical concerns. The work presented in this thesis has two main threads which correspond to the two motion models.
The first thread concerns techniques for implementing kinetic data structures, a class of geometric data structures constructed on top of smoothly moving primitives. We developed a framework for kinetic data structures which was the first to support the necessary algebraic operations exactly in addition to providing a host of new tools for easing implementation and debugging. This framework has been incorporated into a software module that have been released as part of CGAL, the Computational Geometry Algorithms Library.
The second thread looks at the problem of updating Delaunay triangulations, an important subproblem in a variety of simulations. After each step of the simulation, we have the Delaunay triangulation from the last time step and a perturbation of the underlying points as dictated by the computed forces. We need the Delaunay triangulation of the new, perturbed, points. We first present a kinetic data structures based update scheme that updates the prior triangulation to the desired one. This scheme, which required the development of several arithmetic filters, produces the desired triangulation significantly faster than computing it from scratch on a variety of real data sets. We then relax the kinetic data structure by processing events out of order, which results in a significantly faster update algorithm at the cost of occasional backtracking.
[1]
Jonathan Richard Shewchuk,et al.
Star splaying: an algorithm for repairing delaunay triangulations and convex hulls
,
2005,
SCG.
[2]
Leonidas J. Guibas,et al.
Epsilon geometry: building robust algorithms from imprecise computations
,
1989,
SCG '89.
[3]
Leonidas J. Guibas,et al.
Kinetic Data Structures
,
2004,
Handbook of Data Structures and Applications.
[4]
William H. Press,et al.
Numerical recipes in C
,
2002
.
[5]
Nathalie Revol,et al.
Interval Newton Iteration in Multiple Precision for the Univariate Case
,
2003,
Numerical Algorithms.
[6]
Chee-Keng Yap,et al.
Fundamental problems of algorithmic algebra
,
1999
.