谁来解释下这个matlab程序中的算法

问题描述:

谁来解释下这个matlab程序中的算法
clf
R = 100;   % 球的半径
n = 21;    % 圆的数量
N = 30;    % 每个平面圆的点数
t = linspace(0,2*pi,N);        %这个lispace什么意思?
for el = linspace(-pi/2, pi/2, n)
    r = R * cos(el); %半径r怎么是按Rcos(el)变化的?  
    x = r * cos(t);   %下面的xyz坐标如何多加几个,比如0,25,50,75,100
    y = r * sin(t);
    z = R * sin(el) * ones( size(x) );
    plot3(x, y, z, 'k');
    hold on
end
axis equal
结果如下:
1个回答 分类:数学 2014-12-16

问题解答:

我来补答
linspace是产生一维数组1*N
el影响Z轴坐标,从-pi/2到pi/2变化,使得z的值从-100到100变化
xyz坐标点数要增加的话,只要把N的值加大就可以了
整个思想就是把一个三维球体拆解,分成一个个的平行圆.一个球上的点(x,y,z),R为该点和原点连线的长度也就是球的半径,z=R*sin(el),el理解为每个圆所在平面与该点和原点连线的夹角,那么r就是这条直线在平面上的投影,x.y也就可以理解了
 
 
展开全文阅读
剩余:2000