我想在我的3D空间中显示几个球体,每个球体都有不同的中心位置和半径。所以我按照Matlab的教程进行操作,得到以下结果。唯一的问题是我可能有数百个球体来绘制,所以它不可能写下数百行。有没有办法使用带有矩阵输入的surf()函数?也许用x,y和z矩阵冲浪(x,y,z)?谢谢!
hold on;
[x,y,z] = sphere;
r = 50;
s1 = surf(x*r,y*r,z*r,'FaceAlpha',0.1);
s2 = surf((x+3)*r,(y-2)*r,z*r,'FaceAlpha',0.1); % centered at (3,-2,0)
s3 = surf(x*r,(y+1)*r,(z-3)*r,'FaceAlpha',0.1); % centered at (0,1,-3)
s1.EdgeColor = 'none';
s2.EdgeColor = 'none';
s3.EdgeColor = 'none';
答案 0 :(得分:1)
以通用形式写出......你几乎就在那里:
s = surf((x-cx)*r,(y-cy)*r,(z-cz)*r,'FaceAlpha',0.1);
现在只需使用循环
更改cx,cy,cz
即可