MATLAB第五讲 MATLAB高级图形绘制技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.2 其他三维图形绘制技术
MATLAB除了 plot3 外还提供有大量其他的三维图 形绘制,可以用 help specgraph 命令,与二维对应 的有以下一些。 三维条形图 三维彗星状轨迹图 三维饼图 三维磁力线图 三维曲线 三维火柴杆图
bar3 comet3 pie3 quiver3 ezplot3 stem3
1
1
1
1
5.2 其他三维图形绘制技术
[x, y, z]=cylinder(R, n) 柱体R 为柱面 各个层次上的 半径
N=3 1 0.5 0 5 0 -5 -5 N=20 1 0.5 0 5 0 -5 -5 0 1 0.5 0 5 0 -5 -5 0 0 1 0.5 0 5 0 -5 -5 N=50 0
ezplot(f) ezplot(f, [a, b]) ezplot(f, [xmin, xmax, ymin, ymax]) 画函数f = f(x),区间为-2*pi<x<2*pi 或函数f(x,y)=0,区间为-2*pi<x,y<2*pi 同上,区间为 [a, b] 画函数f(x,y)=0,区间为xmin<x<xmax 及 ymin<y<ymax
例子:
[x,y]=meshgrid(-3:0.1:3,-2:0.1:2); z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y); surfl(x,y,z) light('pos',[-3 2 1.5]);shading flat; colormap(hot);
5.2 其他三维图形绘制技术
ezplot(x,y)
画曲线 x=x(t), y=y(t), 区间为 0 < t < 2*pi
ezplot(x,y,[tmin, tmax]) 画曲线 x=x(t), y=y(t), 区间为 tmin < t < tmax
5.1 其他二维图形绘制技术
例子
ezplot('cos(x)', [0, pi])
1.5 1 0.5 0 -0.5 -1 2 1 0 -1 -2 -4 -2 2 0 4
5.2 其他三维图形绘制技术
>> [x,y]=meshgrid(-3:0.1:3,-2:0.1:2); >> z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y); surf(x,y,z)
1.5 1 0.5 0 -0.5 -1 2 1 0 -1 -2 -4 -2 2 0 4
1.5 1 0.5 0 -0.5 -1 2 1 0 -1 -2 -4 -2 2 0 4
5.3 句柄图形绘制技术
MATLAB中大部分绘图命令会返回一个句柄,它代表所绘制 图形对象,如:坐标轴、线条、文字等,然后可以用 set, get 命令来设置或获得该图形对象的有关属性,代表了面向对象 编程的思想。MATLAB中图形对象层次关系如下图所示。
R=[5 0] subplot(221),cylinder(R, 3),title('N=3') subplot(222), cylinder(R,6),title('N=6') subplot(223), cylinder(R),title('N=20') subplot(224), cylinder(R,50),title('N=50')
subplot(221),sphere(3),title('N=3') subplot(222),sphere(6),title('N=6') subplot(223),sphere(20),title('N=20') subplot(224),sphere(50),title('N=50')
N=6
ezplot('x^3 + 2*x^2 - 3*x + 5 - y^2')
f = inline('cos(x)+2*sin(x)'); ezplot(f) ezplot('x^2 + y^2 - 1',[-1.25,1.25]); axis equal ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0,pi]) ezplot('t*cos(t)','t*sin(t)',[0,4*pi])
第五讲 MATLAB高级图形绘制技术
5.1 其他二维图形绘制命令
5.2 其他三维图形绘制命令
5.3 句柄图形绘制技术
5.4 图形可视编辑工具
5.5 视角变换与三视图
5.6 图像文件的读写与显示
5.7 MATLAB 图形输出技术
5.8 例子与习题
5.1 其他二维图形绘制技术
首先介绍 ezplot 函数,下表中f, x, y 为函数或表达式
N=6
5
5
5
5
5.2 其他三维图形绘制技术
[x, y, z]=ellipsoid(xc, yc, zc, xr, yr, zr, n)圆心 为xc, yc, zc, 半径为 xr, yr, zr。
N=3 5 0 -5 2 0 -2 -1 N=20 5 0 -5 2 0 -2 -1 0 5 0 -5 2 0 -2 -1 0 0 5 0 -5 2 0 -2 -1 N=50 0
隐含的部分可以由 hidden on 或 hidden off 来显示 或隐含。 还可以用 colorbar 函数在Байду номын сангаас维曲面边上显示一颜色条。
5.2 其他三维图形绘制技术
例子:画出下列函数的三维表面图形 z f x, y x 2 x e
2 x2 y2 x y
[x,y]=meshgrid(-3:0.1:3,-2:0.1:2); z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y); mesh(x,y,z)
subplot(221), ellipsoid(0,0,0,1,2,3, 3),title('N=3') subplot(222), ellipsoid(0,0,0,1,2,3, 6),title('N=6') subplot(223), ellipsoid(0,0,0,1,2,3),title('N=20') subplot(224), ellipsoid(0,0,0,1,2,3, 50),title('N=50')
同时,Xlabel, X…. 等属性还有对应Y轴、Z轴的同样的属性
5.3 句柄图形绘制技术
常用的文字对象属性
root figure axes line text surface image uicontrol light patch uimenu rectangle uicontextmenu
5.3 句柄图形绘制技术
用下面命令格式来设置或获得有关属性值 set(H, ‘PropertyName’, PropertyValue, …) PropertyValue = get(H, ‘PropertyName’) • 如下述命令 h=figure; get(h); MATLAB将列出当前图形窗口一系列的属性名称 • 如下述命令 h=axes; get(h); MATLAB将列出当前坐标轴一系列的属性名称 • 如下述命令 t=0:0.1:2*pi; y=sin(t); h=plot(t,y); get(h) MATLAB将列出当前线条一系列的属性名称
• 命令 set(h) 列出图形对象 h 的所有属性及取值
5.3 句柄图形绘制技术
常用的通用对象属性
属性名 Childern Parent CreateFcn DeleteFcn Interruptible Selected Tag Type UserData Visible 意义 本对象所有下级子对象的句柄 本对象上级对象的句柄 这类对象建立时自动调用的函数名 这类对象消除时自动调用的函数名 其他回调函数执行时本回调函数是 否中断 用标号表示是否此对象被选中 对象的标签 对象的类型 附加给此对象的数据 本对象是否可见 可选值或类型 向量 父对象句柄 字符串 字符串 ‘on’,’off’ ‘on’,’off’ 字符串 字符串 任意 ‘on’,’off’
同时观察 colorbar, hidden on, hidden off 的影响
5.2 其他三维图形绘制技术
三维表面着色 shading 三种选择 faceted, flat 和 interp 光照点位置 light( ‘Position’, [x, y, z]), 对应用 surf 的另一个版本 surfl 色调方案 colormap(MAP),其中 MAP 是一个 nX3 的矩 阵,三列对应 R, G, B, 预定义的色调方案有 hot, cool, copper, pink, gray, bone, prism, flag 局部图形剪切:将要剪切的部分用数值 NaN 代替。
5.3 句柄图形绘制技术
常用的坐标轴对象属性
属性名 Box ColorOrder GridLineStyle NextPlot Title XLabel XDir XGrid XLim XScale XTick 意义 是否需要坐标轴上的方框 设置多条曲线的颜色顺序 网格线类型 坐标轴图形的更新方式 坐标轴标题的句柄 X轴标注的句柄 X轴方向 X轴是否加网格线 X轴上下限 X轴刻度类型 X轴上标尺点值的向量 可选值或类型 ‘on’,’off’ nX3的矩阵 ‘:’等 ‘replace’, ‘add’ 由函数 title 设定 由函数 xlabel 设定 ‘normal’, ‘rev’ ‘on’,’off’ [xmin, xmax] ‘linear’, ‘log’ ‘on’,’off’
5.1 其他二维图形绘制技术
fplot 函数, fplot('function',limits)
Fplot函数可自适应地对函数进行采样,能更好地反 映出变换的规律。
subplot(211); t=0:0.2:2*pi; plot(t,cos(tan(t))); subplot(212); fplot('cos(tan(x))',[0,2*pi,'*']);
等高线 contour(x, y, z, n) 或 contour3(x, y, z, n)
[x,y]=meshgrid(-3:0.1:3,-2:0.1:2); z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y); surfl(x,y,z) subplot(121); contour(x, y, z, 50), subplot(122), contour3(x, y, z, 50);
N=6
1
1
1
1
5.2 其他三维图形绘制技术
三维表面网格图: mesh(x, y, z, c) x, y 分别构成该曲面的 x 和 y 矩阵 z 为高度矩阵, c 为 颜色矩阵 一般来说, x, y 可以由函数 meshgrid 函数来生成。
三维曲面还可以由函数 surf(x, y, z, c) 画出,参数含 义同上,区别见下例子。
5.2 其他三维图形绘制技术
[x, y, z]=sphere(n) 球面 [x, y, z]=cylinder(R, n) 柱体 [x, y, z]=ellipsoid(xc, yc, zc, xr, yr, zr, n)椭圆体
N=3 1 0 -1 1 0 -1 -1 N=20 1 0 -1 1 0 -1 -1 0 1 0 -1 1 0 -1 -1 0 0 1 0 -1 1 0 -1 -1 N=50 0
2 1.5 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2 0 2 1 0.5 0 -0.5 -1 2 0 -2 -2 2 0
5.2 其他三维图形绘制技术
瀑布式曲面 waterfall(x, y, z )
[x,y]=meshgrid(-3:0.1:3,-2:0.1:2); z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y); waterfall(x, y, z)
5.2 其他三维图形绘制技术
例子:
[x,y]=meshgrid(-3:0.1:3,-2:0.1:2); z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y); surfl(x,y,z) light('pos',[-3 2 1.5]);shading flat;
5.2 其他三维图形绘制技术