Мне поручено создавать равномерно (более или менее) разнесенные точки на концентрических кольцах невидимого круга. Функция должна принимать список радиусов и количество точек для построения для данного радиуса в качестве аргументов. Например, для радиуса 0 он должен построить 1 точку в точке (0,0). Для круга с радиусом 1 он должен нанести 10 точек вдоль окружности круга, разнесенных на угол 2pi/10. Для круга радиуса 2, 20 точек вдоль окружности, разнесенного на угол 2pi/20.Генератор равномерно расположенных точек в круге в python
Генератор должен принимать следующие параметры:
н, r_max, м
и должны генерировать кольца пары координат по радиусам
R_i = I * r_max/п для г = 0, 1, .., п.
Каждое кольцо должно иметь n * i точек, равномерно распределенных в θ, где n_i = 1 для i = 0; n_i = т при г> 0
Когда функция вызывается так:
for r, t in genpolar.rtuniform(n=10, rmax=0.1, m=6):
plot(r * cos(t), r * sin(t), 'bo')
он должен вернуть участок, который выглядит как:
Вот что я придумал до сих пор:
def rtpairs(R, N):
R=[0.0,0.1,0.2]
N=[1,10,20]
r=[]
t=[]
for i in N:
theta=2*np.pi/i
t.append(theta)
for j in R:
j=j
r.append(j)
plt.plot(r*np.cos(t),r*np.sin(t), 'bo')
plt.show()
, но я уверен, что существует более эффективный метод с использованием двух для циклов.
Большое спасибо
исправить ваш отступ –