2015-07-19 81 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

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