04-三维曲【面】
% 第四节-matlab 绘图和数据可视化
% 04-三维曲【面】
% 平面网格数据的生成
% 绘制三维曲面的mesh函数和surf函数
% fmesh函数和fsurf函数
% (1)平面网格数据的生成
x=2:6
y=(3:8)'
X=ones(size(y))*x
Y=y*ones(size(x))
% 利用meshgrid函数生成
% [X, Y]=meshgrid(x, y);
% 其中,参数x、y为向量,存储网格点坐标的X、Y为矩阵。
[X,Y]=meshgrid(x,y)
Z=randn(size(X))
plot3(X,Y,Z)
grid on
% mesh 函数 三维网格图
% surf 函数 三维曲面图
% 其中,X、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不
% 同高度下的曲面颜色。默认c==z
% 绘制三维曲面图z=x*(e-x2(-y2))
t1=-2:0.2:2
[X,Y]=meshgrid(t1)
Z=X.*exp(-X.^2-Y.^2)
subplot(1,3,1)
mesh(X,Y,Z)
subplot(1,3,2)
surf(X,Y,Z)
subplot(1,3,3)
plot3(X,Y,Z)
grid on
% mesh函数和surf函数的其他调用格式:
% mesh(z, c)
% surf(z, c)
% 当x、y省略时,z矩阵的第2维下标当作x轴坐标,
% z矩阵的第1维下标当作y轴坐标。
t2=1:5
z=[0.5*t2;2*t2;3*t2]
mesh(z)
% 带等高显的三维网格曲面函数 meshc
% 带底座的三维网格曲面函数 meshz
% 具有等高线的曲面函数 surfc
% 具有光照效果的曲面函数 surfl
% 例3用4种方式绘制函数z=(x-1)-+(y-2)-1的曲面图,四种方式绘制曲面
% 其中x∈[0,2],y∈[1,3]。
figure(2)
[x1,y1]=meshgrid(0:0.1 :2, 1 :0.1 :3) % 设置x,y区间之间矩阵
z1=(x1-1).^2+(y1-2).^2-1 % 求解z
subplot(2,2,1) % 绘制图形在2.2.1
meshc(x1, y1, z1) % 绘制带等高显示的三维网格曲面函数 meshc
title('meshc(x, y, z')
subplot(2, 2, 2)
meshz(x1, y1, z1) % 带底座的三维网格曲面函数 meshz
title('meshz(x, y, z)')
subplot(2, 2, 3)
surfc(x1, y1, z1) % 具有等高线的曲面函数 surfc
title('surfc(x. y, z')
subplot(2, 2, 4)
surfl(x1, y1, z1) % 具有光照效果的曲面函数 surfl
title('surfl(x, y, z)')
% 绘制标准曲面
% (1) sphere函数
% [X, y, z]=sphere(n) %绘制三维球面 n 表示间隔点数
% (2) cylinder函数
% [X, y, z]=cylinder(R, n) %绘制三维柱面 n 表示间隔点
% 注: R 是一个向量,存放各个曲面的半径
figure(3) %
subplot(1,3,1) %
[x,y,z]=cylinder()
surf(x,y,z)
% ( 3 ) peaks函数
% peaks函数的调用格式:
% peaks(n)
% peaks(V)
% peaks(X, y)
% peaks
p1=peaks(10)
p2=peaks
p3=peaks(-3:0.2:3)
[x,y]=meshgrid(-2:0.1:2,0,0.1:5)
p4=peaks(x,y)
%fsurf(funx, funy, funz, vlims)
%fmesh(funx, funy, funz, uvlims)
% 其中,funx、 funy、 funz代表定义曲面x、y、z坐标的函数,通常采用函数句柄的形式。
% uvlims为funx、funy和funz的自变量的取值范围,用4元向量[umin, umax, vmin, vmax]描述
% ,默认为[-5,5,-5, 5]。
% 绘制螺旋曲面
figure(4)
funx = @(u, v) u.*sin(v);
funy= @(u, v) -u.*cos(v);
funz= @(u, v) v;
fsurf(funx, funy, funz, [5,5, -5, -2])
hold on
fmesh(funx, funy, funz, [-5,5, -2, 2])
hold off
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv13686