%绘制三维表面
-------------------------------------
%1、绘制线框图:mesh:每一条曲线称为mesh line
%首先利用meshgrid函数产生平面区域内的网格坐标矩阵,格式如下
[X,Y] = meshgrid(-8:.5:8);
%meshgrid生成平面格网,返回X,Y都是矩阵。X的每一列值相等,Y的每一行值相等;
%矩阵X的每一行都是向量x,行数等于向量y的元素的个数;
%矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
R=sqrt(X.^2+Y.^2);Z=sin(R)./R;%函数
mesh(X,Y,Z); %画网格曲面,将数据点在空间中描出,并连成网格。
%%生成图像的坐标轴X=-8:8,Y=-8:8;
%mesh(X,Y,Z,C); %c用于指定在不同高度下的颜色范围;%随着Z值(即曲面的高度)成比例变化
%C用于定义颜色(每一个网格的颜色值用一个1*1的值来表示),如果不定义C,则成为mesh(X,Y,Z),其绘制的网格图的颜色
%X,Y,Z是维数相同的矩阵;
%X,Y是网格坐标矩阵,Z是网格点上的高度矩阵;
%mesh(Z); %mesh(Z(1:2:end,1:2:end))
%按矩阵Z的下标绘图 %设置采样的间隔绘制第2*k个点
%meshc(X,Y,Z); %绘出mesh图,并在x-y平面上生成该曲面的等高线图形
%meshz(X,Y,Z); %绘出mesh图,并在曲面的下面加上一个长方形的台柱,从z=0开始绘制
--------
%2、绘制表面图(平滑着色的三维曲面图):surf
surf(X,Y,Z); %画完整曲面,将数据点所表示曲面画出
%调用格式与mesh一样,生成的表面在matlab帮助中称为face(三维图的表面)
surf(X,Y,Z,C)
%对每一个网格依据该网格所代表的节点的色值(1*1的值)来定义这一网格的颜色
%一般C来表示该点对应属性的量级,综合运用用colormap映射颜色
%举例:
[X,Y] = meshgrid(-8:.5:8);R=sqrt(X.^2+Y.^2);Z=sin(R)./R; %X、Y、Z
C=X.*0.2+sin(Y)+Z; %由X,Y,Z的坐标生成C
surf(X,Y,Z,C); colormap winter;colorbar;
例:在xy平面内选择区域[-8,8]×[-8,8],绘制4种三维曲面图
[x,y]=meshgrid(-8:0.5:8);
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);
subplot(2,2,1);
mesh(x,y,z);title('mesh(x,y,z)')
subplot(2,2,2);
surf(x,y,z);title('surf(x,y,z)')
subplot(2,2,3);
meshc(x,y,z);title('meshc(x,y,z)')
subplot(2,2,4);
meshz(x,y,z);title('meshz(x,y,z)')
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">