谁来解释下这个matlab程序中的算法clfR = 100; % 球的半径n = 21; % 圆的数量N = 30; % 每个平面圆的点数t = linspace(0,2*pi,N); %这个lispace什么意思?for el = linspace(-pi/2, pi/2, n) r = R * cos(el); %
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/15 01:21:19
![谁来解释下这个matlab程序中的算法clfR = 100; % 球的半径n = 21; % 圆的数量N = 30; % 每个平面圆的点数t = linspace(0,2*pi,N); %这个lispace什么意思?for el = linspace(-pi/2, pi/2, n) r = R * cos(el); %](/uploads/image/z/7613009-17-9.jpg?t=%E8%B0%81%E6%9D%A5%E8%A7%A3%E9%87%8A%E4%B8%8B%E8%BF%99%E4%B8%AAmatlab%E7%A8%8B%E5%BA%8F%E4%B8%AD%E7%9A%84%E7%AE%97%E6%B3%95clfR+%3D+100%3B+++%25+%E7%90%83%E7%9A%84%E5%8D%8A%E5%BE%84n+%3D+21%3B++++%25+%E5%9C%86%E7%9A%84%E6%95%B0%E9%87%8FN+%3D+30%3B++++%25+%E6%AF%8F%E4%B8%AA%E5%B9%B3%E9%9D%A2%E5%9C%86%E7%9A%84%E7%82%B9%E6%95%B0t+%3D+linspace%280%2C2%2Api%2CN%29%3B++++++++%25%E8%BF%99%E4%B8%AAlispace%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%3Ffor+el+%3D+linspace%28-pi%2F2%2C+pi%2F2%2C+n%29++++r+%3D+R+%2A+cos%28el%29%3B+%25)
谁来解释下这个matlab程序中的算法clfR = 100; % 球的半径n = 21; % 圆的数量N = 30; % 每个平面圆的点数t = linspace(0,2*pi,N); %这个lispace什么意思?for el = linspace(-pi/2, pi/2, n) r = R * cos(el); %
谁来解释下这个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
结果如下:
谁来解释下这个matlab程序中的算法clfR = 100; % 球的半径n = 21; % 圆的数量N = 30; % 每个平面圆的点数t = linspace(0,2*pi,N); %这个lispace什么意思?for el = linspace(-pi/2, pi/2, n) r = R * cos(el); %
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也就可以理解了