利用Matlab生成一个网格化的三维球面(生成直角坐标)

利用Matlab生成一个网格化的三维球面,分别对径向方向、经度方向和纬度方向进行网格化,代码如下:

%生成一个笛卡尔坐标系下球面网格的x,y,z坐标

%r为球面距离

%nJingdu,nWeidu分别为经度方向和纬度方向上的离散度,为正整数

r = 1600;

nJingdu = 80;

nWeidu = 40;

jingdu = linspace(0,2*pi,nJingdu+1);

weidu = linspace(-pi/2,pi/2,nWeidu);

XYZ = zeros(nJingdu*nWeidu,3);

k = 1;

for i = 1:nJingdu

    for j = 1:nWeidu

        XYZ(k,1:3) = [r*cos(weidu(j))*cos(jingdu(i)) r*cos(weidu(j))*sin(jingdu(i)) r*sin(weidu(j))];

        k = k+1;

    end

end

plot3(XYZ(:,1),XYZ(:,2),XYZ(:,3),'.');

axis equal;

save xyz.txt XYZ -ascii -double

  

最后保存为一个数组文件xyz.txt

你可能感兴趣的:(matlab)