www.gusucode.com > 高等数学问题求解源码程序 > CH11/surface_para.m
function surface_para(funx,funy,funz,varargin) %SURFACE_PARA 绘制以参数方程表示的曲面或以参数方程表示的曲线绕z轴旋转所得的旋转曲面 % SURFACE_PARA(FUNX,FUNY,FUNZ,T) 绘制参数方程确定的曲线绕z轴旋转的旋转曲面 % SURFACE_PARA(FUNX,FUNY,FUNZ,U,V) 绘制参数方程确定的曲面 % % 输入参数: % ---FUNX,FUNY,FUNZ:参数方程,可以是曲线或曲面 % ---T:曲线参数方程自变量 % ---U,V:曲面参数方程的自变量 % % See also surf s=unique([symvar(funx),symvar(funy),symvar(funz)]); if length(s)==1 theta=linspace(0,2*pi); t=varargin{1}; [T,Th]=meshgrid(t,theta); X=subs(sqrt(funx^2+funy^2),s,T).*cos(Th); Y=subs(sqrt(funx^2+funy^2),s,T).*sin(Th); Z=subs(funz,s,T); elseif length(s)==2 [u,v]=deal(varargin{:}); [U,V]=meshgrid(u,v); X=subs(funx,num2cell(s),{U,V}); Y=subs(funy,num2cell(s),{U,V}); Z=subs(funz,num2cell(s),{U,V}); else error('参数方程的参数个数有误.') end surf(X,Y,Z) web -broswer http://www.ilovematlab.cn/forum-221-1.html