搜索
您的当前位置:首页正文

MATLAB画三维图

来源:筏尚旅游网


MATLAB画三维函数图

下面将这几天所做的图像及程序小记一下(望大虾指教)

一、螺旋线

1.静态螺旋线

a=0:0.1:20*pi;

h=plot3(a.*cos(a),a.*sin(a),2.*a,'b','linewidth',2);

axis([-50,50,-50,50,0,150]);

grid on

set(h,'erasemode','none','markersize',22);

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('静态螺旋线');

2.动态螺旋线

t=0:0.1:10*pi;

i=1;

h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none');

grid on

axis([-2 2 -2 2 0 35])

for i=2:length(t)

set(h,'xdata',sin(t(i)),'ydata',cos(t(i)),'zdata',t(i));

drawnow

pause(0.01)

end

title('动态螺旋线');

(图略)

3.圆柱螺旋线

t=0:0.1:10*pi;

x=r.*cos(t);

y=r.*sin(t);

z=t;

plot3(x,y,z,'h','linewidth',2);

grid on

axis('square')

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('圆柱螺旋线')

二、旋转抛物面

b=0:0.2:2*pi;

[X,Y]=meshgrid(-6:0.1:6);

Z=(X.^2+Y.^2)./4;

meshc(X,Y,Z);

axis('square')

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('旋转抛物面')

或直接用:ezsurfc('(X.^2+Y.^2)./4')

三、椭圆柱面

load clown

ezsurf('(2*cos(u))','4*sin(u)','v',[0,2*pi,0,2*pi])

view(-105,40) %视角处理

shading interp %灯光处理

colormap(map) %颜色处理

grid on %添加网格线

axis equal %使x,y轴比例一致

xlabel('x轴');ylabel('y轴');zlabel('z轴'); %添加坐标轴说明

title('椭圆柱面') %添加标题

四、椭圆抛物面

b=0:0.2:2*pi;

[X,Y]=meshgrid(-6:0.1:6);

Z=X.^2./9+Y.^2./4;

meshc(X,Y,Z);

axis('square')

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('椭圆抛物面')

或直接用:ezsurfc('X.^2./9+Y.^2./4')

五、'双叶双曲面

ezsurf('8*tan(u)*cos(v)','8.*tan(u)*sin(v)','2.*sec(u)',[-pi./2,3*pi./2,0,2*pi])

axis equal

grid on

axis square

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('双叶双曲面')

六、双曲柱面

load clown

ezsurf('2*sec(u)','2*tan(u)','v',[-pi/2,pi/2,-3*pi,3*pi])

hold on %在原来的图上继续作图

ezsurf('2*sec(u)','2*tan(u)','v',[pi/2,3*pi/2,-3*pi,3*pi])

colormap(map)

shading interp

view(-15,30)

axis equal

grid on

axis equal

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('双曲柱面')

七、双曲抛物面(马鞍面)

[X,Y]=meshgrid(-7:0.1:7);

Z=X.^2./8-Y.^2./6;

meshc(X,Y,Z);

view(85,20)

axis('square')

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('双曲抛物面')

或直接用:ezsurfc('X.^2./8-Y.^2./6')

八、抛物柱面

[X,Y]=meshgrid(-7:0.1:7);

Z=Y.^2./8;

h=mesh(Z);

rotate(h,[1 0 1],180) %旋转处理

%axis([-8,8,-8,8,-2,6]);

axis('square')

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('抛物柱面')

或直接用:ezsurfc('Y.^2./8')

九、环面

ezmesh('(5+2*cos(u))*cos(v)','(5+2*cos(u))*sin(v)','2*sin(u)',[0,2*pi,0,2*pi])

axis equal

grid on

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('环面')

十、椭球

ezsurfc('(5*cos(u))*sin(v)','(3*sin(u))*sin(v)','4*cos(v)',[0,2*pi,0,2*pi])

axis equal

grid on

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('椭球')

十一、单叶双曲面

ezsurf('4*sec(u)*cos(v)','2.*sec(u)*sin(v)','3.*tan(u)',[-pi./2,pi./2,0,2*pi])

axis equal

grid on

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('单叶双曲面')

十二、旋转单叶双曲面

load clown

ezsurf('8*sec(u)*cos(v)','8.*sec(u)*sin(v)','2.*tan(u)',[-pi./2,pi./2,0,2*pi])

colormap(map)

view(-175,30)

%alpha(.2) %透明处理

axis equal

grid on

axis square

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('旋转单叶双曲面')

十三、圆柱面

subplot(1,2,1)

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

grid on

shading interp

axis equal

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('圆柱面')

subplot(1,2,2)

cylinder(30)

shading interp

axis square

title('调用cylinder函数所得圆柱面')

下面给出用colormap()改变图像颜色的例子:(用了灯光效果\"shading interp\")

colormap(); %hot/cool/copper/gray/hsv/spring/summer/winter...

colormap(hsv)

colormap(hot)

colormap(gray)

colormap(cool)

colormap(copper)

下面做了旋转(\"view([ ])\")、灯光(“shading interp”)

、透明(“alpha()”)处理:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top