您的位置:首页 > 油画

Matlab三维图形绘制?

不论是在科研工作中,还是在实际工程应用中,常常会遇到三维或者更多维数据的处理,并且将处理的数据在图形中显示出来,MATLAB平台也提供了很多关于三维图形绘制的函数,利用这些函数可以很方便的实现三维图形的绘制,以下主要讲解Matlab中关于三维图形绘制相关的函数。

1、调用plot3函数来绘制三维曲线图,调用格式如下:

plot3(x1,y1,z1,’PropertyName’,’PropertyValue’...);

其中PropertyName表示属性名,可以是颜色,线型,线宽等属性,PropertyValue表示属性值,对应属性名所包含的各种属性值。

该函数调用对应的m文件如下:

clear all;%%表示清空所有变量及变量值%%

t=0:pi/360:2*pi;

x=sin(t);

y=cos(t);

z=2*x.^2+y.^2;

plot3(x,y,z,'Color','r','LineWidth',2);

%%三维曲线坐标轴和标题的设置%%

xlabel('x');

ylabel('y');

zlabel('z');

title('三维曲线图');

axis([-1.2 1.2 -1.2 1.2 0.5 2.2];

m文件操作及运行结果如下:

2、调用surf、surfc(得到含有等高线的三维曲面图)、surfl(带灯光的三维曲面图)三个函数来绘制三维曲面图,调用格式如下:

surf(x,y,z,’PropertyName’,’PropertyValue’...)

调用该函数对应m文件如下:

t=-2:0.1:2;

[x,y] =meshgrid(t);%%表示区域网格控制,目地是为了让x,y形成格点矩阵%%

z=5*x.^2+8*y^3;

surf(x,y,z);

%%设置三维曲面x轴,y轴,z轴,标题对应内容及三个坐标轴的取值范围%%

xlabel('X');

ylabel('Y');

zlabel('Z');

title('surf三维曲面图');

axis([-2.5 2.5 -2.5 2.5 -5 25]);

m文件操作及运行结果如下:

3、调用mesh、meshc(得到含有等值线的三维网格图)、surfz(用于绘制包含零平面的网格线)三个函数来绘制三维曲面图,调用格式如下:

mesh(x,y,z,’PropertyName’,’PropertyValue’...)

t=-2:0.1:2;

[x,y] =meshgrid(t);%%表示区域网格控制,目地是为了让x,y形成格点矩阵%%

z=5*x.^2+8*y^3;

mesh(x,y,z);

%%设置三维曲面x轴,y轴,z轴,标题对应内容及三个坐标轴的取值范围%%

xlabel('X');

ylabel('Y');

zlabel('Z');

title('mesh三维网格图');

axis([-2.5 2.5 -2.5 2.5 -5 25]);

m文件操作及运行结果如下:

4、调用contour3函数绘制三维等高线图,调用格式如下:

contour3(z,n);

contour3(x,y,z,n);

编写该函数调用的m文件,如下:

[x,y]=meshgrid(-1.5:0.01:1.5);

z=x.*exp(-x.^2-2*y.^2);

contour3(x,y,z,15);

grid off;%%关闭网格%%

%%设置三维等高线x轴,y轴,z轴,标题对应内容及三个坐标轴的取值范围%%

xlabel('X');

ylabel('Y');

zlabel('Z');

title('contour3三维等高线图');

axis([-1.5 1.5 -1.5 1.5 -0.5 0.5]);

m文件操作及运行结果如下:

5、特殊三维图形绘制

对上面所讲的四种特殊三维图形进行绘制,首先编写对应的m文件如下:

clear all;

t=0:pi/20:2*pi;

[x,y,z]=cylinder(1+cos(t));

subplot(2,2,1)

surf(x,y,z);

axis([-3 3 -3 3 0 1]);

title('三维柱面图形');

subplot(2,2,2)

sphere;

axis([-1 1 -1 1 -1 1]);

title('三维球体图形');

subplot(2,2,3)

a=[1 2 2.5 3 1.5];%%各部分所占的比例%%

b=[0 0 1 0 0];%%0,表示不单独分离出来,1表示分离出来表示%%

pie3(a,b);

title('三维饼状图形')

subplot(2,2,4)

[X2,Y2]=meshgrid(-2:0.25:2);

Z2=peaks(X2,Y2);

ribbon(Y2,Z2);

title('三维彩带图形');

m文件操作及运行结果如下: