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文件操作及运行结果如下: