matlab三维网格绘图函数meshmeshcmeshzmeshgridsurfmatlab图行绘制五
Posted 张叔zhangshu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab三维网格绘图函数meshmeshcmeshzmeshgridsurfmatlab图行绘制五相关的知识,希望对你有一定的参考价值。
三维网格曲面的绘制
三维网格曲面是由一些四边形相互连接在一起所构成的一种曲面,这些四边形的4条边所围成的颜色与图形窗口的背景色相同,并且无色调
的变化,呈现的是一种线架图
的形式。
绘制这种网格曲面时,我们需要知道各个四边形的顶点的 3 个坐标值
(x,y,z),然后再使用MATLAB所提供的网格曲面绘图命令mesh
、meshc
或meshz
来绘制不同形式的网格曲面。
1.栅格数据点的产生
前面我们讲过,在绘制网格曲面之前,必须先知道各个四边形顶点的三维坐标值。绘制曲面的一般情况是,我们先知道四边形各个顶点的二维坐标(x, y),然后再利用某个函数公式计算出四边形各个顶点的z 坐标。这里所使用的二
维坐标值(x, y)是一种栅格形的数据点,它可由MATLAB所提供的meshgrid
产生。meshgrid命令的调用格式如下。
[X, Y]=meshgrid(x, y)
:表示由x 向量和y 向量值通过复制的方法产生绘制三维图形时所需的栅格数据X矩阵和Y矩阵。
在使用该命令的时候,需要说明以下两点:
(1)向量x和向量y分别代表三维图形在X轴、Y轴方向上的取值数据点;
(2)x和y分别是1个向量,而X和Y分别代表1个矩阵。
利用meshgrid绘制矩形网格。
x=-5:0.5:5;
y=5:-0.5:-5;
[X,Y]=meshgrid(x,y);
plot(X,Y,'o')
2.网格曲面的绘制命令
MATLAB中,mesh
函数用于绘制三维网格曲面图,该函数的语法格式有以下几种:
mesh(X,Y,Z,C)
mesh(X,Y,Z)
mesh(x,y,Z,C)
mesh(x,y,Z)
mesh(Z,C)
mesh(Z)
上面6种格式都可以绘制出三维网格曲面图,但是各个格式的命令参数含义有些区别,现作出以下几点说明。
(1)在命令格式mesh(X,Y,Z,C)和mesh(X,Y,Z)中,参数X,Y,Z都为矩阵值,并且X矩阵的每一个行向量都是相同的,Y矩阵的每一个列向量也都是相同的。参数C表示网格曲面的颜色分布情况
,若省略该参数
,则表示网格曲面的颜色分布与Z方向上的高度值成正比
。
(2)在命令格式(x,y,Z,C)和mesh(x,y,Z)中,参数x和y为长度分别是n和m的向量值,而参数Z是维数为m×n的矩阵。其实,这种格式的命令相当于执行了下面两条命令:
[X,Y]=meshgrid(x,y)
mesh[X,Y,Z,C]
(3)在命令格式[Z,C]和mesh(Z)中,若参数Z是维数为m×n的矩阵,则绘图时的栅格数据点的取法是x=1:n和y=1:m。
其实,这种格式的命令相当于执行了下面5条命令:
[m,n]=size(Z);
x=1:n;
y=1:m;
[X,Y]=meshgrid(x,y);
mesh(X,Y,Z,C)
在笛卡尔坐标系中绘制函数的网格曲面图。
x=-7:0.5:7;
y=x;
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
mesh(X,Y,Z)
grid on
axis([-10 10 -10 10 -1 1 ])
另外,MATLAB中还有两个mesh的派生函数。
(1)meshc函数用于在绘图的同时,在x-y平面上绘制函数的等值线。
(2)meshz函数用于在网格图基础上在图形的底部外侧绘制平行于z轴的边框线。
利用meshc和meshz函数绘制三维网格图。
close all
clear
[X,Y] = meshgrid(-2:.4:2);
Z = 2*X.^2-3*Y.^2;
subplot(2,2,1)
plot3(X,Y,Z)
subplot(2,2,2)
mesh(X,Y,Z)
subplot(2,2,3)
meshc(X,Y,Z)
subplot(2,2,4)
meshz(X,Y,Z)
3.隐藏线的显示和关闭
显示或不显示的网格曲面的隐藏线将对图形的显示效果有一定的影响。MATLAB、hidden函数为相关的控制命令,该函数的调用格式如下。
hidden on
:表示去掉网格曲面的隐藏线。
hidden off
:表示显示网格曲面的隐藏线。
以上是关于matlab三维网格绘图函数meshmeshcmeshzmeshgridsurfmatlab图行绘制五的主要内容,如果未能解决你的问题,请参考以下文章