title: How to fast retrieve all spheres containing a certain spatial point
body: <p>Imagine that I have an array of balls in the N-dimensional space. Each ball has a certain radius and location. Just to give a simplified example of circles in a 2D plain as follows:</p>
  <ol>
  <li>Center at <code>(0, 0)</code>, radius: <code>5.5</code></li>
  <li>Center at <code>(3.5, 4)</code>, radius: <code>12.1</code></li>
  <li>Center at <code>(10.5, -3.2)</code> radius: <code>3.1</code>
  ...</li>
  </ol>
  <p>Hope it explains. This list can be very large. Every ball (in 2D, it's a circle) has a certain radius and location. Balls can overlap (well, geometric objects, not physical ones).</p>
  <p>My challenge is, <strong>given a point P in the space (say, <code>(12, 4)</code> in the 2D example), I want to quickly search for all balls in the given list (potentially very large list) which contain the point P</strong> (distance between P and the center of a ball is shorter than the radius of that ball).</p>
  <p>Since the list of balls is long, I can't afford scanning the list for each search. <strong>I need some index on this list</strong>. However, the location of point P is arbitrary. I wonder whether there's any indexing methods which can support this search?</p>
  <p>Thanks very much!</p>