2015-07-19 45 views
1

所以我試着去借鑑Matlab和這是我到目前爲止,從我的源代碼:圖形上的東西MATLAB

phi=linspace(0,pi,100); 
theta=linspace(0,pi,100); 
r=phi.^2+theta.^2; 

x=r.*sin(phi).*cos(theta); 
y=r.*sin(phi).*sin(theta); 
z=r.*cos(phi); 
plot3(x,y,z,'*') 

然而,這只是給了我一個片,我想多片。我如何去做這件事? 謝謝!

回答

4

有幾個問題與您的代碼:

  • 在你的代碼,因爲它代表,thetaphi載體phi的每個值都與值theta相關聯。這給出了一條線,而不是一個表面。要生成曲面,需要生成theta,phi值爲矩陣的所有組合。這可以通過ndgrid完成。
  • 環面方程似乎是錯誤的。我正在從Wikipedia中拿走他們。
  • thetaphi應該從02*pi(不是從0pi)變化。

代碼:

phi = linspace(0,2*pi,100); 
theta = linspace(0,2*pi,100); 
[pp, tt] = ndgrid(phi,theta); 
R = 1; 
r = 1; 
x = (R+r.*cos(tt)).*cos(pp); 
y = (R+r.*cos(tt)).*sin(pp);; 
z = r.*sin(tt); 
plot3(x,y,z,'*') 

圖:

enter image description here

+3

這是完全迷幻! https://frontpsych.files.wordpress.com/2011/11/psychedelic.jpeg – rayryeng

+0

@rayryeng令人眩暈! :-) –

+0

哇,你真棒。非常感謝你:) –