PM2 QuadTree Demo
PM2 Quadtree
Recursively decompose the underlying space into four equal area
blocks as long as a block contains more than one line segment unless
the line segments are all incident at the same vertex regardless of
its location (i.e., it need not be in the same block).
For more
details, see pages 365-369 and 806-807 of Samet,
Foundations of Multidimensional and Metric Data Structures
or, see pages 257-261 of Samet, Design and
Analysis of Spatial Data Structures.
Instructions
Insert mode:
- click and drag to specify the line to insert
- press CTRL when defining either end point of any line to snap to nearest
already existing point
Delete mode:
- click to delete the nearest line
Search mode:
- Click and drag to define a rectangle. Lines inside this rectangle will be returned based on the Search mode:
- Inside window - the entire line (i.e., both of its endpoints) are
in the query window in order to return the line
- Crosses window - the entire line passes through the query window
(i.e., both of its endpoints lie outside the window)
- Intersects window once - the line crosses just one of the
boundaries of the window (i.e., only one of the endpoints of the line lies
inside the window)