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