三维平面画图_第1页
三维平面画图_第2页
三维平面画图_第3页
三维平面画图_第4页
三维平面画图_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三维平面画图第1页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令mesh 和 surf:mesh:可画出立体的网状图(Mesh Plots)surf:可画出立体的曲面图(Surface Plots)z = 0 2 1; 3 2 4; 4 4 4; 7 6 8;mesh(z);xlabel(X 轴 = column index);% X 轴的说明文字ylabel(Y 轴 = row index);% Y 轴的说明文字第2页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令第3页,共64页,2022年,5月20日,0点23分,星期日4-1

2、 基本立体绘图指令范例4-2 :plotxyz002.m若要将与曲面对应的 x 坐标和 y 坐标都一并画出来,还是可以使用 mesh 指令z = 0 2 1; 3 2 4; 4 4 4; 7 6 8;mesh(z);xlabel(X 轴 = column index);% X 轴的说明文字ylabel(Y 轴 = row index);% Y 轴的说明文字for i=1:size(z,1)for j=1:size(z,2)h=text(j, i, z(i,j), num2str(z(i, j);% 标示曲面高度set(h, hori, center, vertical, bottom, col

3、or, r); % 改变位置及颜色endend第4页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令第5页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令范例4-3 :plotxyz011.mmeshgrid 的作用是产生 x 及 y (均为向量) 为基准的格子点 (Grid Points),其输出为 xx 及 yy(均为矩阵),分别代表格子点的 x 坐标及 y 坐标。第6页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令范例4-3 :plotxyz011.mx = 3:6;y = 5:9;xx, yy

4、= meshgrid(x, y);% xx 和 yy 都是矩阵zz = xx.*yy;% 计算函数值 zz,也是矩阵subplot(2,2,1); mesh(xx);title(xx); axis tightsubplot(2,2,2); mesh(yy);title(yy); axis tightsubplot(2,2,3); mesh(xx, yy, zz);title(zz 对 xx 及 yy 作图); axis tightcolormap(zeros(1,3);% 以黑色呈现第7页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令第8页,共64页,2022年

5、,5月20日,0点23分,星期日范例4-4 :plotxyz01.m使用 linspace 来产生较密集的数据,以便画出由函数 形成的立体网状图x = linspace(-2, 2, 25);% 在 x 轴 -2,2 之间取 25 点y = linspace(-2, 2, 25);% 在 y 轴 -2,2 之间取 25 点xx, yy = meshgrid(x, y);% xx 和 yy 都是 2525 的矩阵zz = xx.*exp(-xx.2-yy.2); % 计算函数值,zz 也是 2525 的矩阵mesh(xx, yy, zz);% 画出立体网状图4-1 基本立体绘图指令第9页,共64

6、页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令第10页,共64页,2022年,5月20日,0点23分,星期日范例4-5 :plotxyz01.msurf 和 mesh 指令的用法类似x = linspace(-2, 2, 25);% 在 x 轴 -2,2 之间取 25 点y = linspace(-2, 2, 25);% 在 y 轴 -2,2 之间取 25 点xx,yy = meshgrid(x, y);% xx 和 yy 都是 2525 的矩阵zz = xx.*exp(-xx.2-yy.2);% zz 也是 252 的矩阵surf(xx, yy, zz);% 画出三维

7、曲面图4-1 基本立体绘图指令第11页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令第12页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令peaks:为了方便测试立体绘图,MATLAB 提供了一个 peaks 函数,可产生一个凹凸有致的曲面,包含了三个局部极大点(Local Maxima)及三个局部极小点(Local Minima)其方程式为:第13页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令画出此函数的最快方法,即是在 MATLAB 命令窗口直接键入 peaks,可得到下列方程式z = 3*(

8、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)第14页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令第15页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令meshz:meshz 指令有将曲面加上舞台的效果范例4-6:plotxyz03.mx, y, z = peaks;meshz(x,y,z);axis tight;第16页,共64页,2022年,5月20日,0点23分,星期日4-1 基本

9、立体绘图指令第17页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令waterfall:waterfall 指令可在 x 方向或 y 方向产生水流效果范例4-7:plotxyz04.mx, y, z = peaks;waterfall(x,y,z);axis tight;第18页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令范例4-7:plotxyz04.m第19页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令meshc:meshc 可同时画出网状图与等高线(Contours)范例4-8:plotxy

10、z05.mx, y, z = peaks;meshc(x, y, z);axis tight;第20页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令范例4-8:plotxyz05.m第21页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令plot3:plot3 指令可画出三度空间中的曲线范例4-9:plotxyz06.mt = linspace(0,20*pi, 501);% 在 0 及 20*pi 中间取 501 点plot3(t.*sin(t), t.*cos(t), t);% 画出 tsin(t),tcos(t),t 的曲线第

11、22页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令第23页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令plot3:亦可同时画出两条三度空间中的曲线范例4-10:plotxyz07.mt = linspace(0, 10*pi, 501);plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);% 同时画两条曲线第24页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令第25页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立

12、体绘图指令plot3:如果输入自变量是三个大小相同的矩阵 x、y、z,那么 plot3 会依序画出每个行向量在三度空间所对应的曲线范例4-11:plotxyz08.mx, y = meshgrid(-2:0.1:2);z = y.*exp(-x.2-y.2);plot3(x, y, z);第26页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令范例4-11:plotxyz08.m第27页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令plot3:上例中,所有的资料点都必需是在格子点上,MATLAB 才能根据每点的高度来作图。如果所给的

13、数据点不在格子点上,我们必需先用 griddata 指令来进行内插法以产生格子点第28页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令范例4-12:plotxyz09.mx = 6*rand(100,1)-3; % x 为介于 -3, 3 的 100 点随机数y = 6*rand(100,1)-3; % y 为介于 -3, 3 的 100 点随机数z = peaks(x, y); % z 为 peaks 指令产生的 100 点输出X, Y = meshgrid(-3:0.1:3);Z = griddata(x, y, z, X, Y, cubic); mesh(

14、X, Y, Z);hold onplot3(x, y, z, ., MarkerSize, 16);% 昼出 100 个取样hold offaxis tight第29页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令范例4-12:plotxyz09.m第30页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令整理:基本三维立体绘图指令的列表类别指令说明网状图mesh, ezmesh立体网状图meshc, ezmeshc网状图加上等高线meshz网状图加上“围裙”(或“舞台”)曲面图surf, ezsurf三维曲面图surfc, ezsu

15、rfc曲面图加上等高线surfl曲面图加上光源第31页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令整理:基本三维立体绘图指令的列表类别指令说明曲线图plot3, ezplot3立体曲线图低阶函数surfaceSurf 用到的低阶指令line3Plot3 用到的低阶指令等高线contour, ezcontour平面上的等高线contour3空间中的等高线影像表示pcolor在二维平面中以颜色表示曲面的高度第32页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令ezmesh, ezsurf:如果我们只是要很快地检视一个具有二个输入的函

16、数的图形,就可以使用 ezmesh 或是 ezsurf 等来快速地画出函数的曲面图形范例4-13:plotxyz091.msubplot(2,2,1);ezmesh(sin(x)/x*sin(y)/y);subplot(2,2,2);ezsurf(sin(x*y)/(x*y);subplot(2,2,3);ezmeshc(sin(x)/x*sin(y)/y);subplot(2,2,4);ezsurfc(sin(x*y)/(x*y);第33页,共64页,2022年,5月20日,0点23分,星期日4-1 基本立体绘图指令范例4-13:plotxyz091.m第34页,共64页,2022年,5月2

17、0日,0点23分,星期日4-2 立体图形与图轴的基本技巧hidden off:在绘制网状图时,MATLAB 会隐藏被遮盖的网线,若要使被遮盖的网线亦能呈现出来,可用 hidden off 指令若再键入 hidden on,则恢复原先的设定范例4-14:plotxyz10.mx,y,z = peaks;mesh(x,y,z);hidden offaxis tight第35页,共64页,2022年,5月20日,0点23分,星期日4-2 立体图形与图轴的基本技巧范例4-14:plotxyz10.m第36页,共64页,2022年,5月20日,0点23分,星期日4-2 立体图形与图轴的基本技巧整理:以

18、on/off 来切换的指令:指令说明hidden on/off隐藏(on)或显示(off)被遮盖的网线。zoom on/off允许(on)或取消(off)以鼠标点选来放大图形。rotate3d on/off允许(on)或取消(off)以鼠标点选来旋转三维图轴。axis on/off显示(on)或不显示(off)图轴。box on/off显示(on)或不显示(off)图轴的外框。hold on/off在绘制新图时,保留(on)或消去(off)旧图。more on/off允许(on)或不允许(off)指令窗口的输出暂停。echo on/off允许(on)或不允许(off)指令在档案内执行时,逐一显

19、示在窗口。第37页,共64页,2022年,5月20日,0点23分,星期日4-2 立体图形与图轴的基本技巧rotate3d on:若要能够旋转立体图形,可已在产生 3D 图形之后(例如输入 peaks 之后),再输入rotate3d on,此时您可以压下鼠标左键来拖曳图轴,以选取最理想的观测角度。也可以点选图形窗口上面的 图标,就可以开始旋转立体图形。第38页,共64页,2022年,5月20日,0点23分,星期日4-2 立体图形与图轴的基本技巧三维曲线的观测角度:一般而言,三维曲线的观测角度是由 Azimuth 及 Elevation 来决定ElevationAzimuth觀測點原点xzy第39

20、页,共64页,2022年,5月20日,0点23分,星期日4-2 立体图形与图轴的基本技巧对二维图形而言,默认值为 Azimuth = 0,Elevation = 90;对三维图形而言,默认值为 Azimuth = -37.5,Elevation = 30。若要改变观测角度,可用 view 指令范例4-15:plotxyz11.mpeaks;view(0,-30);第40页,共64页,2022年,5月20日,0点23分,星期日4-2 立体图形与图轴的基本技巧范例4-15:plotxyz11.m第41页,共64页,2022年,5月20日,0点23分,星期日4-2 立体图形与图轴的基本技巧NaN:有

21、时候我们希望将曲面图切掉一部份,以呈现不同的效果,此时可用 NaN 或 nan(Not a Number,即“非数值”)来取代矩阵某一部份的值,MATLAB 一碰到 NaN,就会“镂空”范例4-16:plotxyz12.mX, Y, Z = peaks;Z(10:20,10:20) = nan;% 将 Z 矩阵的一部分代换为 nansurf(X, Y, Z);axis tight第42页,共64页,2022年,5月20日,0点23分,星期日4-2 立体图形与图轴的基本技巧范例4-16:plotxyz12.m第43页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制co

22、lorbar:利用 colorbar 指令,可显示 MATLAB 如何以不同颜色来代表曲面的高度例如先输入peaks,再输入colorbar第44页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制整理:常用颜色的 RGB 成分:颜色Red(红色)Green(绿色)Blue(蓝色)black(黑)000white(白)111red(红)100green(绿)010blue(蓝)001yellow(黄)110magenta(锰紫)101cyan(青蓝)011gray(灰)0.50.50.5dark red(暗红)0.500copper(铜色)10.620.4aquama

23、rine(碧绿)0.4910.83第45页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制colormap:MATLAB 预设的颜色对应表可由 colormap 得知cm 是一个 643 的矩阵,因此 MATLAB 在画图时,会把 cm 第一列的颜色设定给曲面的最高点,把 cm 的最后一列的颜色设定给曲面的最低点,其余高度的颜色则依线性内插法来决定 cm = colormap; size(cm)ans = 64 3第46页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制colormap:改变颜色对应表,可得到不同颜色的曲面 ,欲改变颜色对

24、应表,也是用 colormap 指令范例4-17:plotxyz13.mpeaks;colormap(rand(64,3); % 以随机数产生颜色对应表colorbar;第47页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制范例4-17:plotxyz13.m第48页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制整理:MATLAB 现成的颜色对照表:第49页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制cool:使您的曲面使用感觉较冷的颜色范例4-18:plotxyz14.mpeaks;colormap

25、cool;colorbar第50页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制范例4-18:plotxyz14.m第51页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制surf和mesh的颜色设定:除了以高度来设定颜色之外,surf 及 mesh 指令都可以接受第 4 个输入自变量来作为设定颜色的依据例如:以曲面的斜率来设定颜色范例4-19:plotxyz15.mX, Y, Z = peaks;surf(X, Y, Z, gradient(Z);axis tight;colormap hot第52页,共64页,2022年,5月20日

26、,0点23分,星期日4-3 曲面颜色的控制范例4-19:plotxyz15.m第53页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制surf和mesh的颜色设定:例如:以曲面的曲率来设定颜色范例4-20:plotxyz16.mX, Y, Z = peaks;surf(X, Y, Z, del2(Z);axis tight;colormap hot第54页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制范例4-20:plotxyz16.m第55页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制briten:我们

27、可用 brighten 指令来使颜色对照表变亮或变暗范例4-21:plotxyz17.mcolormap coppersubplot(3, 1, 1); rgbplot(colormap);brighten(colormap, 0.5)subplot(3, 1, 2); rgbplot(colormap);brighten(colormap, -0.8)subplot(3, 1, 3); rgbplot(colormap);第56页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制范例4-21:plotxyz17.m第57页,共64页,2022年,5月20日,0点23分,星期日4-3 曲面颜色的控制True Color:前例MATLAB 决定颜色的方法称为索引颜色(Indexed Color)法,因为曲面上每个方块先对应至颜色对应表的索引如果您的显示器能支持 24 位全彩,则我们可以直接定义一千六百万(224)种颜色,而不需要再定义颜色

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论