  The three distance theorem (also known as the three gap theorem or Steinhaus
problem) states that, for any given real number $\alpha$ and integer $N$, there
are at most three values for the distances between consecutive elements of the
Kronecker sequence $\alpha, 2\alpha,\ldots, N\alpha$ mod 1. In this paper we
consider a natural generalisation of the three distance theorem to the higher
dimensional Kronecker sequence $\vec\alpha, 2\vec\alpha,\ldots, N\vec\alpha$
modulo an integer lattice. We prove that in two dimensions there are at most
five values that can arise as a distance between nearest neighbors, for all
choices of $\vec\alpha$ and $N$. Furthermore, for almost every $\vec\alpha$,
five distinct distances indeed appear for infinitely many $N$ and hence five is
the best possible general upper bound. In higher dimensions we have similar
explicit, but less precise, upper bounds. For instance in three dimensions our
bound is 13, though we conjecture the truth to be 9. We furthermore study the
number of possible distances from a point to its nearest neighbor in a
restricted cone of directions. This may be viewed as a generalisation of the
gap length in one dimension. For large cone angles we use geometric arguments
to produce explicit bounds directly analogous to the three distance theorem.
For small cone angles we use ergodic theory of homogeneous flows in the space
of unimodular lattices to show that the number of distinct lengths is (a)
unbounded for almost all $\vec\alpha$ and (b) bounded for $\vec\alpha$ that
satisfy certain Diophantine conditions.
