我的任务是在一个看不见的圆的同心环上产生均匀(或多或少)的间隔点.该函数应该采用半径列表,以及给定半径作为参数绘制的点数.例如,对于半径为0,它应该在(0,0)处绘制1点.对于半径为1的圆,它应沿圆的圆周绘制10个点,间隔2pi/10的角度.对于半径为2的圆,沿圆周的20个点,以2pi/20的角度间隔开.
生成器应采用以下参数:
n,r_max,m
并应在半径处生成坐标对的环
对于i = 0,1,..,n,r_i = i*r_max/n.
每个环应具有均匀分布在θ中的n*i个点,其中对于i = 0,n_i = 1; n_i = mi for i> 0
当像这样调用函数时:
for r, t in genpolar.rtuniform(n=10, rmax=0.1, m=6):
plot(r * cos(t), r * sin(t), 'bo')
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所提出的:
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()
Run Code Online (Sandbox Code Playgroud)
但我很确定使用两个for循环有一个更有效的方法.
非常感谢