在球体上生成等距点[MATLAB]

时间:2017-05-16 00:46:48

标签: matlab

我想在球体(球体表面)上生成等距点。我想出了这段代码。

n = 30; % number of points
r = 10; % radius of the sphere

thetha = 0:pi/(n/2):2*pi; 
phi    = -pi:2*pi/n:pi;
xp     = r.*sin(phi).*cos(thetha);
yp     = r.*sin(thetha).*sin(phi);
zp     = r.*cos(phi);
figure;plot3(xp,yp,zp,'*')

但这就是我得到的enter image description here

有谁可以告诉我在我的代码中犯了什么错误?

1 个答案:

答案 0 :(得分:3)

你只生成一条路径: x - y 平面中单个闭合圆的八字形组合,沿着 z < / em>的

Three Views of the single, closed curve

要获得完整的球体形状,必须采用两条路径的排列。这可以通过meshgrid

来完成
[t,p] = meshgrid(thetha,phi);    
xp    = r.*sin(p).*cos(t);
yp    = r.*sin(t).*sin(p);
zp    = r.*cos(p);  
plot3(xp,yp,zp,'-*');
grid('on');
box('on');
axis('square');

Spherical shape plot