반지 내에서 임의의 x 및 y 좌표를 생성하려고합니다. 반지름은 3.5이고 내부 반경은 2입니다. x와 y에 대해 : 파이썬에서 반지 내에서 임의의 x, y 좌표를 생성하려고 시도했습니다.
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**2 + y**2 < 12.25 and x**2 + y**2 > 4
나는 다음과 같은 기능을 썼다. 문제를 찾을 수없는 것 같습니다. 나는 그것이 코딩 오류, 또는 일부 멍청한 수학 문제인지 잘 모르겠습니다. 너희 둘은 보통 둘 다 잘하기 때문에 내가 여기서 뭘 잘못하고 있는지 볼 수 있니?
왜 임의의 각도를 생성하지 대신 거리, 다음 X, Y 쌍에 그 변환? –
@MartijnPieters 거리를 균일하게 생성하면 내부 링에서 점의 밀도가 높아집니다. – kennytm