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

下载本文档

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

文档简介

三维平面画图第一页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令mesh和surf:mesh:可画出立体的「网状图」(MeshPlots)surf:可画出立体的「曲面图」(SurfacePlots)z=[021;324;444;768];mesh(z);xlabel('X轴=columnindex'); %X轴的说明文字ylabel('Y轴=rowindex'); %Y轴的说明文字第二页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令第三页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令范例4-2:plotxyz002.m若要将与曲面对应的x坐标和y坐标都一并画出来,还是可以使用mesh指令z=[021;324;444;768];mesh(z);xlabel('X轴=columnindex'); %X轴的说明文字ylabel('Y轴=rowindex'); %Y轴的说明文字fori=1:size(z,1) forj=1:size(z,2) h=text(j,i,z(i,j),num2str(z(i,j))); %标示曲面高度

set(h,'hori','center','vertical','bottom','color','r');%改变位置及颜色

endend第四页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令第五页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令范例4-3:plotxyz011.mmeshgrid的作用是产生x及y(均为向量)为基准的格子点(GridPoints),其输出为xx及yy(均为矩阵),分别代表格子点的x坐标及y坐标。第六页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令范例4-3:plotxyz011.mx=3:6;y=5:9;[xx,yy]=meshgrid(x,y); %xx和yy都是矩阵zz=xx.*yy; %计算函数值zz,也是矩阵subplot(2,2,1);mesh(xx);title('xx');axistightsubplot(2,2,2);mesh(yy);title('yy');axistightsubplot(2,2,3);mesh(xx,yy,zz);title('zz对xx及yy作图');axistightcolormap(zeros(1,3)); %以黑色呈现第七页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令第八页,共六十四页,编辑于2023年,星期六范例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都是25×25的矩阵zz=xx.*exp(-xx.^2-yy.^2); %计算函数值,zz也是25×25的矩阵mesh(xx,yy,zz); %画出立体网状图4-1基本立体绘图指令第九页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令第十页,共六十四页,编辑于2023年,星期六范例4-5:plotxyz01.m

surf和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都是25×25的矩阵zz=xx.*exp(-xx.^2-yy.^2); %zz也是25×2的矩阵surf(xx,yy,zz); %画出三维曲面图4-1基本立体绘图指令第十一页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令第十二页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令peaks:为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点(LocalMaxima)及三个局部极小点(LocalMinima)其方程式为:

第十三页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令画出此函数的最快方法,即是在MATLAB命令窗口直接键入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)第十四页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令第十五页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令meshz:meshz指令有将曲面加上「舞台」的效果范例4-6:plotxyz03.m[x,y,z]=peaks;meshz(x,y,z);axistight;第十六页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令第十七页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令waterfall:waterfall指令可在x方向或y方向产生水流效果范例4-7:plotxyz04.m[x,y,z]=peaks;waterfall(x,y,z);axistight;第十八页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令范例4-7:plotxyz04.m第十九页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令meshc:meshc可同时画出网状图与「等高线」(Contours)范例4-8:plotxyz05.m[x,y,z]=peaks;meshc(x,y,z);axistight;第二十页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令范例4-8:plotxyz05.m第二十一页,共六十四页,编辑于2023年,星期六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的曲线第二十二页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令第二十三页,共六十四页,编辑于2023年,星期六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); %同时画两条曲线第二十四页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令第二十五页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令plot3:如果输入自变量是三个大小相同的矩阵x、y、z,那么plot3会依序画出每个行向量在三度空间所对应的曲线范例4-11:plotxyz08.m[x,y]=meshgrid(-2:0.1:2);z=y.*exp(-x.^2-y.^2);plot3(x,y,z);第二十六页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令范例4-11:plotxyz08.m第二十七页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令plot3:上例中,所有的资料点都必需是在格子点上,MATLAB才能根据每点的高度来作图。如果所给的数据点不在格子点上,我们必需先用griddata指令来进行内插法以产生格子点第二十八页,共六十四页,编辑于2023年,星期六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(X,Y,Z);holdonplot3(x,y,z,'.','MarkerSize',16); %昼出100个取样holdoffaxistight第二十九页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令范例4-12:plotxyz09.m第三十页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令整理:基本三维立体绘图指令的列表类别指令说明网状图mesh,ezmesh立体网状图meshc,ezmeshc网状图加上等高线meshz网状图加上“围裙”(或“舞台”)曲面图surf,ezsurf三维曲面图surfc,ezsurfc曲面图加上等高线surfl曲面图加上光源第三十一页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令整理:基本三维立体绘图指令的列表类别指令说明曲线图plot3,ezplot3立体曲线图低阶函数surfaceSurf用到的低阶指令line3Plot3用到的低阶指令等高线contour,ezcontour平面上的等高线contour3空间中的等高线影像表示pcolor在二维平面中以颜色表示曲面的高度第三十二页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令ezmesh,ezsurf:如果我们只是要很快地检视一个具有二个输入的函数的图形,就可以使用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)');第三十三页,共六十四页,编辑于2023年,星期六4-1基本立体绘图指令范例4-13:plotxyz091.m第三十四页,共六十四页,编辑于2023年,星期六4-2立体图形与图轴的基本技巧hiddenoff:在绘制网状图时,MATLAB会隐藏被遮盖的网线,若要使被遮盖的网线亦能呈现出来,可用hiddenoff指令若再键入hiddenon,则恢复原先的设定范例4-14:plotxyz10.m[x,y,z]=peaks;mesh(x,y,z);hiddenoffaxistight第三十五页,共六十四页,编辑于2023年,星期六4-2立体图形与图轴的基本技巧范例4-14:plotxyz10.m第三十六页,共六十四页,编辑于2023年,星期六4-2立体图形与图轴的基本技巧整理:以on/off来切换的指令:指令说明hiddenon/off隐藏(on)或显示(off)被遮盖的网线。zoomon/off允许(on)或取消(off)以鼠标点选来放大图形。rotate3don/off允许(on)或取消(off)以鼠标点选来旋转三维图轴。axison/off显示(on)或不显示(off)图轴。boxon/off显示(on)或不显示(off)图轴的外框。holdon/off在绘制新图时,保留(on)或消去(off)旧图。moreon/off允许(on)或不允许(off)指令窗口的输出暂停。echoon/off允许(on)或不允许(off)指令在档案内执行时,逐一显示在窗口。第三十七页,共六十四页,编辑于2023年,星期六4-2立体图形与图轴的基本技巧rotate3don:若要能够旋转立体图形,可已在产生3D图形之后(例如输入peaks之后),再输入「rotate3don」,此时您可以压下鼠标左键来拖曳图轴,以选取最理想的观测角度。也可以点选图形窗口上面的图标,就可以开始旋转立体图形。第三十八页,共六十四页,编辑于2023年,星期六4-2立体图形与图轴的基本技巧三维曲线的观测角度:一般而言,三维曲线的观测角度是由Azimuth及Elevation来决定ElevationAzimuth觀測點原点xzy第三十九页,共六十四页,编辑于2023年,星期六4-2立体图形与图轴的基本技巧对二维图形而言,默认值为Azimuth=0°,Elevation=90°;对三维图形而言,默认值为Azimuth=-37.5°,Elevation=30°。若要改变观测角度,可用view指令范例4-15:plotxyz11.mpeaks;view([0,-30]);第四十页,共六十四页,编辑于2023年,星期六4-2立体图形与图轴的基本技巧范例4-15:plotxyz11.m第四十一页,共六十四页,编辑于2023年,星期六4-2立体图形与图轴的基本技巧NaN:有时候我们希望将曲面图切掉一部份,以呈现不同的效果,此时可用NaN或nan(NotaNumber,即“非数值”)来取代矩阵某一部份的值,MATLAB一碰到NaN,就会“镂空”范例4-16:plotxyz12.m[X,Y,Z]=peaks;Z(10:20,10:20)=nan;

%将Z矩阵的一部分代换为nansurf(X,Y,Z);axistight第四十二页,共六十四页,编辑于2023年,星期六4-2立体图形与图轴的基本技巧范例4-16:plotxyz12.m第四十三页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制colorbar:利用colorbar指令,可显示MATLAB如何以不同颜色来代表曲面的高度例如先输入「peaks」,再输入「colorbar」第四十四页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制整理:常用颜色的RGB成分:颜色Red(红色)Green(绿色)Blue(蓝色)black(黑)000white(白)111red(红)100green(绿)010blue(蓝)001yellow(黄)110magenta(锰紫)101cyan(青蓝)011gray(灰)0.50.50.5darkred(暗红)0.500copper(铜色)10.620.4aquamarine(碧绿)0.4910.83第四十五页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制colormap:MATLAB预设的颜色对应表可由colormap得知

cm是一个64×3的矩阵,因此MATLAB在画图时,会把cm第一列的颜色设定给曲面的最高点,把cm的最后一列的颜色设定给曲面的最低点,其余高度的颜色则依线性内插法来决定>>cm=colormap;>>size(cm)ans= 643第四十六页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制colormap:改变颜色对应表,可得到不同颜色的曲面,

欲改变颜色对应表,也是用colormap指令范例4-17:plotxyz13.mpeaks;colormap(rand(64,3));%以随机数产生颜色对应表colorbar;第四十七页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制范例4-17:plotxyz13.m第四十八页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制整理:MATLAB现成的颜色对照表:第四十九页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制cool:使您的曲面使用感觉较冷的颜色范例4-18:plotxyz14.mpeaks;colormapcool;colorbar第五十页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制范例4-18:plotxyz14.m第五十一页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制surf和mesh的颜色设定:除了以高度来设定颜色之外,surf及mesh指令都可以接受第4个输入自变量来作为设定颜色的依据例如:以曲面的斜率来设定颜色范例4-19:plotxyz15.m[X,Y,Z]=peaks;surf(X,Y,Z,gradient(Z));axistight;colormaphot第五十二页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制范例4-19:plotxyz15.m第五十三页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制surf和mesh的颜色设定:例如:以曲面的曲率来设定颜色范例4-20:plotxyz16.m[X,Y,Z]=peaks;surf(X,Y,Z,del2(Z));axistight;colormaphot第五十四页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制范例4-20:plotxyz16.m第五十五页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制briten:我们可用brighten指令来使颜色对照表变亮或变暗范例4-21:plotxyz17.mcolormapcoppersubplot(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);第五十六页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制范例4-21:plotxyz17.m第五十七页,共六十四页,编辑于2023年,星期六4-3曲面颜色的控制TrueColor:前例MATLAB决定颜色的方法称为「索引颜色」(IndexedColor)法,因为曲面上每个方块先对应至颜色对应表的索引如果您的显示器能支持24位全彩,则我们可以直接定义一千六百万(224)种颜色,而不需要再定义颜色对应表。此

温馨提示

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

评论

0/150

提交评论