Skip to content
Snippets Groups Projects
Commit 32e95fcf authored by Martin Mareš's avatar Martin Mareš
Browse files

Geometric: Introduction

parent 319acc0d
No related branches found
No related tags found
No related merge requests found
TOP=..
include ../Makerules
\ifx\chapter\undefined
\input adsmac.tex
\singlechapter{7}
\fi
\chapter[geom]{Geometric data structures}
There is a~rich landscape of data structures for handling geometric objects.
Let us perform a~small survey. First, there are different objects which can
be stored in the structure: points in~$\R^d$, lines in~$\R^d$, or even more
complex shapes like polygons, conic sections or splines.
Queries are asked about all objects which lie within a~given \em{region}
(or intersect its boundary). Usually, the region is one of:
\tightlist{o}
\:\em{a~single object} --- test if the given object is stored in the structure
\:\em{a~range} --- a~$d$-dimensional ``box''
$[a_1,b_1] \times [a_2,b_2] \times \ldots \times [a_d,b_d]$;
some of the intervals can extend to infinity
\:\em{partial match} --- some parameters of the object are specified precisely,
the remaining ones can be arbitrary. E.g., report all points in~$\R^3$
for which $x=3$ and $z=5$. This is a~special case of a~range, where
each interval is either a~single point or the whole~$\R$.
Partial match queries frequently occur in database indices,
even in otherwise non-geometric situations.
\:\em{a~polygon}
\endlist
We might want to \em{enumerate} all objects within the region,
or just \em{count} them enumerating all of them.
enumerating all of them. If there is a~value associated with each
object, we can ask for a~sum or a~maximum of values of all objects
within the range --- this is generally called an \em{aggregation}
query.
In this chapter, we will consider the simple case of range queries
on points in~$\R^d$
\section{Range queries in one dimension}
TODO
\section{Multi-dimensional search trees (k-d trees)}
TODO
\section{Multi-dimensional range trees}
TODO
\endchapter
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment