title: Trying to generate random x,y coordinates within a ring in python
body: <p>I am trying to generate random x and y coordinates within a ring, which has an outer radius of 3.5 and an inner radius of 2. Therefor the following must be true for x and y:</p>
  
  <pre><code>x**2 + y**2 &lt; 12.25 and x**2 + y**2 &gt; 4
  </code></pre>
  
  <p>I wrote the following function: </p>
  
  <pre><code>def meteorites():
      circle = False
      while circle == False:        
          r = np.array([uniform(-6., 6.), uniform(-6., 6.)])
          # we will regenerate random numbers untill the coordinates
          # are within the ring x^2+y^2 &lt; 3,5^2 and x^2+y^2 &gt; 2^2
          if (r[0]**2+r[1]**2 &lt; 12.25) and (r[0]**2+r[1]**2 &gt; 4.):
              circle = True
  
         else :
              circle = False
  
      return r[0], r[1]
  
  x = np.zeros(1000)
  y = np.zeros(1000)
  for i in range(1000):
      x[i] = meteorites()[0]
      y[i] = meteorites()[1]
  plt.scatter(x,y)
  plt.show()  
  </code></pre>
  
  <p>When I plot the resulting coordinates I get a square from -3.5 to 3.5. I can't seem to find the problem. I'm also not sure if it's a coding error, or some dum math problem. Since you guys are usually good at both, can you see what I'm doing wrong here?</p>