www.gusucode.com > 高等数学问题求解源码程序 > CH11/cylinder1.m

    function varargout=cylinder1(x,y,N)
%CYLINDER1   绘制柱面
% CYLINDER1  绘制底面圆的圆心在原点,半径为1,高度为1的圆柱
% CYLINDER1(X,Y)  绘制以X和Y构成的曲线为母线的高度为1的柱面
% CYLINDER1(X,Y,N)  绘制以X和Y构成的曲线为母线的柱面,并将其高度分为N等分
% H=CYLINDER1(...)  绘制柱面并返回其句柄
% [XX,YY,ZZ]=CYLINDER1(...)  计算柱面坐标数据
%
% 输入参数:
%     ---X,Y:母线的坐标数据
%     ---N:柱面高度的等分数
% 输出参数:
%     ---H:柱面的句柄
%     ---XX,YY,ZZ:柱面坐标数据
%
% See also cylinder

if nargin<3
    N=2;
end
t=linspace(0,2*pi);
if nargin<1
    x=cos(t);y=sin(t);
end   
if length(x)~=length(y)
    error('曲线坐标维数不匹配.')
end
x=x(:); y=y(:);
X=repmat(x,1,N);
Y=repmat(y,1,N);
Z=repmat(linspace(0,1,N),length(x),1);
if nargout==0
    surf(X,Y,Z)
elseif nargout==1
    h=surf(X,Y,Z);
    varargout{1}=h;
else
    varargout{1}=X; varargout{2}=Y; varargout{3}=Z;
end
web -broswer http://www.ilovematlab.cn/forum-221-1.html