如何生成坐标以用一条线覆盖球体?
How to produce coordinates to cover a sphere with a single line?
我目前处于这种情况:
我正在尝试生成 x、y、z 坐标,这将使我能够以扫描方式专门覆盖一个球体,就像您在图中的红线上看到的那样。
我目前正在使用此代码生成坐标:
Nsteps = 50
Ntours = 3
R = 10
r = 1
theta = linspace(0, 2*pi*Ntours, Nsteps, endpoint = False)
r0 = linspace(0, R, Nsteps, endpoint = False)
X01 = (r0*cos(theta))
X02 = X01[::-1]
X0 = append(X01,X02)
Y01 = (r0*sin(theta))
Y02 = Y01[::-1]*-1
Y0 = append(Y01,Y02)
Z0 = linspace(0,10,num=100)
如您所见,它一点也不完美,我很难编写一种方法来强制我的坐标生成符合球体大小。
换句话说,我需要一个脚本,输入这些信息后:
- 球体半径
- 所需步数
- 转数
生成 x、y、z 坐标,跟踪球体上的这条路径,始终位于球体表面,在 3 个数组 X、Y Z 中。
由于与本主题无关的其他限制,我被迫使用 50 - 100 步,我不能再进一步了。所以我不是在寻找覆盖球体整个表面的东西,而是用这个相当少的步骤就可以很好地覆盖它。
非常感谢您的帮助!
救援球坐标:
http://en.wikipedia.org/wiki/Spherical_coordinate_system#Cartesian_coordinates
这允许你做类似的事情
Npoints = 100
t = np.linspace(0,np.pi,Npoints)
r = 1
a = 20
phi = a*t
X = r*np.sin(t)*np.cos(phi)
Y = r*np.sin(t)*np.sin(phi)
Z = r*np.cos(t)
调整 r
半径和 a
...螺旋度...我们称之为...
我目前处于这种情况:
我正在尝试生成 x、y、z 坐标,这将使我能够以扫描方式专门覆盖一个球体,就像您在图中的红线上看到的那样。
我目前正在使用此代码生成坐标:
Nsteps = 50
Ntours = 3
R = 10
r = 1
theta = linspace(0, 2*pi*Ntours, Nsteps, endpoint = False)
r0 = linspace(0, R, Nsteps, endpoint = False)
X01 = (r0*cos(theta))
X02 = X01[::-1]
X0 = append(X01,X02)
Y01 = (r0*sin(theta))
Y02 = Y01[::-1]*-1
Y0 = append(Y01,Y02)
Z0 = linspace(0,10,num=100)
如您所见,它一点也不完美,我很难编写一种方法来强制我的坐标生成符合球体大小。
换句话说,我需要一个脚本,输入这些信息后: - 球体半径 - 所需步数 - 转数
生成 x、y、z 坐标,跟踪球体上的这条路径,始终位于球体表面,在 3 个数组 X、Y Z 中。
由于与本主题无关的其他限制,我被迫使用 50 - 100 步,我不能再进一步了。所以我不是在寻找覆盖球体整个表面的东西,而是用这个相当少的步骤就可以很好地覆盖它。
非常感谢您的帮助!
救援球坐标: http://en.wikipedia.org/wiki/Spherical_coordinate_system#Cartesian_coordinates
这允许你做类似的事情
Npoints = 100
t = np.linspace(0,np.pi,Npoints)
r = 1
a = 20
phi = a*t
X = r*np.sin(t)*np.cos(phi)
Y = r*np.sin(t)*np.sin(phi)
Z = r*np.cos(t)
调整 r
半径和 a
...螺旋度...我们称之为...