2017-04-26 118 views
0

我想在我的3D空間中顯示幾個球體,每個球體都有不同的中心位置和半徑。所以我遵循Matlab的教程,我得到以下結果。唯一的問題是我可能有數百個球體進行繪製,因此不可能寫下數百行。有沒有辦法用矩陣輸入使用surf()函數?也許衝浪(x,y,z)與x,y和z矩陣?謝謝!以普通形式MATLAB中使用矩陣的三維3D幾何圖

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'; 

enter image description here

+0

'x','y'和'z'已經是(2D)矩陣。爲什麼你不使用for循環? – m7913d

+0

其實你是對的!我不知道爲什麼我沒有想到for循環......但使用for循環來繪製數百個球體並不需要太長時間?無論如何,我會試試謝謝! – jiayi

回答

1

寫....你幾乎有:

s = surf((x-cx)*r,(y-cy)*r,(z-cz)*r,'FaceAlpha',0.1); 

現在只是改變cx,cy,cz與循環

+0

是的,謝謝你我認爲一個循環會很好的工作!不知道爲什麼我在這裏拍攝:) – jiayi