私は、半径が3.5で内半径が2のリング内でランダムなx座標とy座標を生成しようとしています。 xとyのために:Pythonのリング内でランダムなx、y座標を生成しようとしています
x**2 + y**2 < 12.25 and x**2 + y**2 > 4
私は次の関数を書いた:
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 < 3,5^2 and x^2+y^2 > 2^2
if (r[0]**2+r[1]**2 < 12.25) and (r[0]**2+r[1]**2 > 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()
私は-3.5〜3.5平方を取得した座標をプロットするとき。私は問題を見つけるように見えない。私はそれがコーディングエラーかどうか、またはいくつかのおかしい数学の問題かどうかも分かりません。皆さんはお互いに良いことが多いので、私がここで間違っていることを見ていただけますか?
次にX、Yのペアにそれを変換し、なぜランダム角度を生成しない、代わりに距離? –
@MartijnPieters距離を一様に生成すると、内側のリングでポイントの密度が高くなります。 – kennytm