admin 管理员组文章数量: 1184232
2024年3月6日发(作者:ssm实训报告心得)
00000
三维绘图
1 三维绘图指令
类 别
网状图
指 令
mesh, ezmesh
meshc, ezmeshc
meshz
surf, ezsurf
曲面图
曲线图
底层函数
等高线
水流效果
影像表示
2 基本XYZ立体绘图命令
mesh和plot是三度空间立体绘图的基本命令,mesh可画出立体网状图,plot则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。下列命令可画出由函数形成的立体网状图:
surfc, ezsurfc
surfl
plot3, ezplot3
surface
line3
contour3
waterfall
pcolor
说 明
绘制立体网状图
绘制带有等高线的网状图
绘制带有“围裙”的网状图
立体曲面图
绘制带有等高线的曲面图
绘制带有光源的曲面图
绘制立体曲线图
Surf函数用到的底层指令
plot3函数用到的底层指令
绘制等高线
在x方向或y方向产生水流效果
在二维平面中以颜色表示曲面的高度
x=linspace(-2, 2, 25); % 在x轴上取25点
y=linspace(-2, 2, 25); % 在y轴上取25点
[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵
zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵
mesh(xx, yy, zz); % 画出立体网状图
surf和mesh的用法类似:
x=linspace(-2, 2, 25); % 在x轴上取25点
y=linspace(-2, 2, 25); % 在y轴上取25点
[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵
zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是25x25的矩阵
0 00
000
00000
surf(xx, yy, zz); % 画出立体曲面图
peaks
面,包含了三个局部极大点及三个局部极小点,其方程式为:
要画出此函数的最快方法即是直接键入peaks:
peaks
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 -
y.^5).*exp(-x.^2-y.^2) - 1/3*exp(-(x+1).^2 - y.^2)
为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲
我们亦可对peaks函数取点,再以各种不同方法进行绘图。meshz可将曲面加上围裙:
[x,y,z]=peaks;
meshz(x,y,z);
0 00
000
00000
waterfall可在x方向或y方向产生水流效果:[x,y,z]=peaks;
waterfall(x,y,z);
下列命令产生在y方向的水流效果:
[x,y,z]=peaks;
waterfall(x',y',z');
meshc同时画出网状图与等高线:
[x,y,z]=peaks;
meshc(x,y,z);
0
0
0
00
0
00000
surfc同时画出曲面图与等高线:
[x,y,z]=peaks;
surfc(x,y,z);
contour3画出曲面在三度空间中的等高线:
contour3(peaks, 20);
contour画出曲面等高线在XY平面的投影:
contour(peaks, 20);
0 00
000
00000
plot3可画出三度空间中的曲线:
t=linspace(0,20*pi, 501);
plot3(t.*sin(t), t.*cos(t), t);
亦可同时画出两条三度空间中的曲线:
t=linspace(0, 10*pi, 501);
plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);
0
0
0
000
00000
三维绘图的主要功能:
绘制三维线图
绘制等高线图
绘制伪彩色图
绘制三维网线图
绘制三维曲面 图、柱面图和球面图
绘制三维多面体并填充颜色
(一)三维线图
plot3 —— 基本的三维图形指令
调用格式:
plot3(x,y,z) —— x,y,z是长度相同的向量
plot3(X,Y,Z) —— X,Y,Z是维数相同的矩阵
plot3(x,y,z,s) —— 带 开关量
plot3(x1,y1,z1,’s1’, x2,y2,z2,’s2’, …)
二维图形的所有基本特性对三维图形全都适用。 定义三维坐标轴
大小
axis([xmin xmax ymin ymax zmin zmax ])
grid on(off) 绘 制三维网格
text(x,y,z,‘string’) 三维图形标注
子图和多窗口也可以用到三维图形中
例:绘制三维线 图
t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),’r:’)
(二) 三维饼图
pie3([4 3 6 8 9])
(三)三维多边形
fill3 = fill —— 三维多边形的绘制和填色与二维多边形完全相同
调用格式:
fill3(x,y,z,‘s’) —— 与 二维相同
例: 用随机顶点坐标画出5个粉色的三角形,并用黄色的○表示顶点
y1=rand(3,5);y2=rand(3,5);y3=rand(3,5);
fill3(y1,y2,y3,’m’);hold on;plot3(y1,y2,y3,’yo’)
(四)三维网格图
mesh —— 三 维网线绘图函数
调用格式:
mesh(z) —— z为n×m的矩阵,x与y坐标为元素的下标
mesh(x,y,z) —— x,,y,z 分别为三维空间的坐标位置
例,矩阵的三维网线图
z=rand(6);
0.8808 0.0729 0.4168 0.7694 0.3775 0.4776
0.3381 0.7101 0.0964 0.6352 0.3826 0.7086
0.1895 0.8791 0.6747 0.8965 0.6876 0.2380
0.7431 0.3594 0.5626 0.8784 0.1217 0.3910
0.7189 0.0899 0.8130 0.4865 0.0768 0.9759
0 00
000
00000
0.8792 0.1610 0.8782 0.1131 0.1433 0.6288
z=round(z)
1 0 0 1 0 0
0 1 0 1 0 1
0 1 1 1 1 0
1 0 1 1 0 0
1 0 1 0 0 1
1 0 1 0 0 1
mesh(z);
例:8阶hadamard矩阵的网线图
h2=[1 1;1 -1];h4=[h2 h2;h2 -h2]
h8=[h4 h4;h4 -h4]
1 1 1 1 1 1 1 1
1 -1 1 -1 1 -1 1 -1
1 1 -1 -1 1 1 -1 -1
1 -1 -1 1 1 -1 -1 1
1 1 1 1 -1 -1 -1 -1
1 -1 1 -1 -1 1 -1 1
1 1 -1 -1 -1 -1 1 1
1 -1 -1 1 -1 1 1 -1
mesh(h8)
生 成坐标 —— [X,Y]=meshgrid(x,y)
表达式点运算 —— Z=X.^2+Y.^2
X,Y是n×m的矩阵,维数可任 定
X— n
Y— m
Z—
默认方位角:37。5º,俯角30º。
meshgrid—— 网线坐标值计 算函数
z=f(x,y) — 根据x,y坐标找出z的高度
例:绘制z=x2+y2的三维网线图形
x=-5:5; y=x;
[X,Y]=meshgrid(x,y)
Z=X.^2+Y.^2
mesh(X,Y,Z)
colormap( [R,G,B])—— 色图设定函数
matlab 的颜色数据集合为红、绿、兰三颜色矩阵[R,G,B],维数 m×3
r,g,b在[0 1]区间连续取值,理论上颜色种类可达无穷多种
matlab使用三维向量表示一种颜色,常用颜色数据见下表
饱和色
[0 0 0] — 黑色
[0 0 1] — 兰色
[0 1 0] — 绿 色
0 00
000
00000
[0 1 1] — 浅兰
[1 0 0] — 红色
[1 0 1] — 粉红
[1 1 0] — 黄 色
[1 1 1] — 白色
调和色
[0.5 0.5 05] — 灰色
[0.5 0 0] — 暗 红色
[1 0.62 0.4] — 铜色
[0.49 1 0.8] — 浅绿
[0.49 1 0.83] —宝石兰
(五)三维曲面图
surf —— 三维曲面绘图函数,与网格图看起来一样
与三维网线图的区别:
网线图:线条有颜色,空挡是 黑色的(无颜色)
曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化
调用格式:
surf(x,y,z) —— 绘 制三维曲面图,x,y,z为图形坐标向量
例:
[X,Y,Z]=peaks(30)
※peaks为matlab
自 动生成的三维测
试图形
surf(X,Y,Z)
三维网线图作图要领
surfc(X,Y,Z) — 带 等高线的曲面图
[X,Y,Z]=peaks(30);surfc(X,Y,Z)
surfl(X,Y,Z) —— 被光照射带阴 影的曲面图
[X,Y,Z]=peaks(30);surfl(X,Y,Z)
cylinde(r,n) — 三维柱面绘图函 数
r 为半径;n为柱面圆周等分数
例:绘制三维陀螺锥面
t1=0:0.1:0.9;
t2=1:0.1:2;
r=[t1 -t2+2];
[x,y,z]=cylinder(r,30);
surf(x,y,z);
grid
为球面等分数,缺省为 20
例:绘制三维球面
[x,y,z]=sphere(30);surf(x,y,z);
0 00
000
00000
(六) 图形修饰方法
a. 图形颜色的修饰
matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形
colormap(MAP) —— 色 图设定函数,MAP为m×3维色图矩阵
图形颜色可根据需要任意生成,也可用matlab配备的色图函数
matlab 的色图函数:
hsv —— 饱 和值色图
gray —— 线性灰度色图
hot —— 暖色色图
cool —— 冷色色图
bone —— 兰 色调灰色图
copper —— 铜色色图
pink —— 粉红色图
prism —— 光谱色图
jet —— 饱和值色图II
flag —— 红、白、蓝交替色图
shading faceted — 网格修饰,缺省方式
shading flat —— 去 掉黑色线条,根据小方块的值确定颜色
shading interp —— 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色
b. 图 形效果修饰
透视与消隐—— 用于网线图
裁剪修饰 ——用于网线图、曲面图
视角修饰 —— 观察不同角度的三维视图
其 它修饰:
i. 水线修饰
ii. 等高线修饰
透视与消隐
p=peaks(30); mesh(p);hidden on
视角修饰(函数view(az,el))
az ----方位角;el ---- 俯视角
省 缺值为:az=-37.5; el=30
例。观察不同视角的波峰图形
z=peaks(40);
subplot(2,2,1);mesh(z);
subplot(2,2,2);mesh(z);view(-15,60);
subplot(2,2,3);mesh(z);view(-90,0);
subplot(2,2,4);mesh(z);view(-7,-10);
其它修饰:
i. 水线修饰 (waterfall)
waterfall(peaks(30))
ii. 等高线修饰
二维
0 00
000
00000
contour(Z,n)-------- 绘制n条等高线
C= contourc(Z,n)------计算n条等高线的坐标
Clable(c)------给等高线加标注
例、 在二维平面上绘制peaks函数的10条等
高线
contour(peaks,10);
C=contourc(peaks,10);clabel(C)
(五)、伪彩色图
pcolor —— 常用于以二维平面图表现三维图形的效果,用颜色表示三维图形的高度。
(六)动画效果
动画生成的步骤
创建帧矩阵 ————— moviein
对动画中的每一帧生成图形,并把它们放到帧矩阵 中 ———— getframe
从帧矩阵中回放动画
0 00
000
版权声明:本文标题:matlab三维绘图命令和演示 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1709735615a544830.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论