6.838, Computational Geometry; Fall 2001
Point Location
Sergi Elizalde & David Pritchard
Although the
previous algorithm was inefficient in terms of space usage, it had some very
nice properties:
- the entire map was broken into trapezoidal sections (and triangles, which we treat as degenerate trapezoids)
- each trapezoid has exactly 2 non-vertical boundaries
- no trapezoid contains a vertex (all are at corners)
- each trapezoid belongs to exactly one face
We want to preserve
these properties but reduce the complexity of our structure
We can remove
many edges without destroying these properties:
Removing all
unnecessary edges gives us the trapezoidal map (also trapezoidal/vertical
decomposition) T(S) of S
Formally, the
trapezoidal map of S is obtained from S by taking
a planar subdivision, and drawing two vertical extensions from each vertex:
an upper vertical extension, and a lower vertical extension.
The extensions
go vertically up/down from the vertices of S and stop when they
hit an edge or the bounding box
The trapezoidal
map is guaranteed to be not much more complex than the original map; if we started
with n line segments than we can end up with no more than 3n+1
trapezoids (Lemma 6.2)