您的位置:首页 > 编程语言 > MATLAB

Matlab绘制常见三维图形

2014-04-16 20:37 232 查看
%% a.画椭球

a=1;b=2;c=3;

figure(1),title('椭球')

ellipsoid(0,0,0,a,b,c)

%

shading interp

box on;

grid off

colormap hsv

%% b.单叶双曲面

[x,y]=meshgrid(-2:0.2:2,-2:0.2:2);

z=sqrt(c.^2*(x.^2/(a.^2)+y.^2/(b.^2)-1));

%

figure(2)

subplot(121),title('单叶双曲面')

surf(x,y,real(z))

hold on;

surf(x,y,-real(z))

%

[u,v]=meshgrid(linspace(0,2*pi,50),linspace(-1*pi/2,pi/2,50));

x=a.*sec(v).*cos(u);

y=a.*sec(v).*sin(u);

z=c.*tan(v);

subplot(122),title('单叶双曲面')

surf(x,y,z)

%

shading interp

box on;

grid off

colormap hsv

%% c.双叶双曲面

[x,y]=meshgrid(-2:0.2:2,-2:0.2:2);

z=sqrt(c.^2*(x.^2/(a.^2)-y.^2/(b.^2)-1));

%

figure(3)

subplot(121),title('双叶双曲面')

surf(x,y,real(z))

hold on;

surf(x,y,-real(z))

%

[u,v]=meshgrid(linspace(0,2*pi,50),linspace(-1*pi/2,3*pi/2,50));

x=a.*tan(v).*cos(u);

y=a.*tan(v).*sin(u);

z=c.*sec(v);

subplot(122),title('单叶双曲面')

mesh(x,y,z)

%

shading interp

box on;

grid off

colormap hsv

%% d.椭圆抛物面

[x,y]=meshgrid(-2:0.2:2,-2:0.2:2);

z=(x.^2/(a.^2)+y.^2/(b.^2))./2;

%

figure(4),title('椭圆抛物面')

surf(x,y,z)

%

colormap gray

%% e.马鞍面

[x,y]=meshgrid(-2:0.2:2,-2:0.2:2);

z=(x.^2/(a.^2) - 2.*y.^2/(b.^2));

%

figure(5),title('马鞍面')

surf(x,y,z)

%

shading interp

box on;

grid off

colormap hsv

%% f.圆环面

r=2;

R=4;

[u,v]=meshgrid(linspace(0,2*pi,50),linspace(0,2*pi,50));

x=(R+r.*cos(v)).*cos(u);

y=(R-r.*cos(v)).*sin(u);

z=r.*sin(v);

%

figure(6)

subplot(131),title('圆环面1')

surf(x,y,z)

%

syms u v

subplot(132),title('圆环面2')

ezmesh('(4+2*cos(v))*cos(u)','(4-2*cos(v))*sin(u)',...

'2*sin(v)',[0,2*pi,0,2*pi])

subplot(133),title('圆环面3')

ezsurf('(4+2*cos(v))*cos(u)','(4-2*cos(v))*sin(u)',...

'2*sin(v)',[0,2*pi,0,2*pi])

%

shading interp

box on;

grid off

colormap hsv

%% g.螺旋面

u=linspace(0,2*pi);

v=linspace(0,6*pi);

[U,V]=meshgrid(u,v);

x=(4+sin(20*U)).*cos(V);

y=(4+sin(20*U)).*sin(V);

z=2*V;

figure(7),title('螺旋面')

mesh(x,y,z)

axis equal

%% h.螺旋卷筒

clear all

R=2;

b=2;

u=linspace(0,2);

v=linspace(0,6*pi);

[U,V]=meshgrid(u,v);

x=U.*cos(V);

y=U.*sin(V);

z=U.*V;

figure(8),title('螺旋卷筒')

mesh(x,y,z)

axis equal

axis off

%% i.螺旋管,俗称“弹簧”

u=linspace(0,2*pi,100);

v=linspace(0,6*pi,100);

[U,V]=meshgrid(u,v);

X=(4+sin(U)).*cos(V);

Y=(4+sin(U)).*sin(V);

Z=cos(U)+V;

figure(9),title('螺旋管')

mesh(X,Y,Z)

axis equal

axis off

%% j.圆柱上的缎带

u=linspace(0,2);

v=linspace(0,6*pi);

[U,V]=meshgrid(u,v);

X=2*cos(V);

Y=2*sin(V);

Z=U+V;

figure(10),title('圆柱上的缎带')

mesh(X,Y,Z)

axis equal

axis off

%% k.纽带

u=linspace(0,2);

v=linspace(0,6*pi);

[U,V]=meshgrid(u,v);

X=U.*cos(V);

Y=U.*sin(V);

Z=5*V;

figure(10),title('纽带')

mesh(X,Y,Z)

axis equal

axis off



















内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: