title: "NumPy-est" way to generate equilateral grid
body: <p>I have a rectangular extent [[left, bottom], [right, top]] and an initial point [x, y]. I want to fill the extent with the equilateral point grid (of width w) on which the initial point lies.</p>
  <p>So far I've found the top-left point via</p>
  <pre><code>h = w * math.sqrt(3.0) / 2.0
  start = np.array([right - ((right - x) % w), top - ((top - y) % h)])
  </code></pre>
  <p>And I can generate the x &amp; y positions with</p>
  <pre><code>x_in_row = np.arange(start[0], right, w)
  x_in_off_row = x_in_row - w / 2.0
  row_y = np.arange(start[1], bottom, -h)
  </code></pre>
  <p>Now I want to combine those to generate an n x 2 array (of n points). I'm quite new to NumPy and I know there are lots of ways to elegantly combine arrays I just have trouble thinking about the dimensions and the correct functions to use for each purpose. Is there a nice sequence/combination of functions to achieve this?</p>