




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB课程论文MATLAB在三维作图中的应用姓名:学号:专业:班级:指导老师:学院:完成日期:MATLAB在三维作图中的应用摘要MATLAB提供了一系列的绘图函数,用户不仅不许考虑绘图细节,只需给出一些基本的参数就能得到所需要的图形,这一类函数称为高层绘图函数。除此之外,MATLAB还提供了直接对句柄进行操作的一系列的低层的绘图操作。这类操作将图形的每个元素看做是一个独立的对象,系统给每个对象独立的分配一个句柄,以后可以通过该句柄对改图元素进行操作,而不影响图形的其他部分。高层绘图操作简单明了,方便高效,使用户最常使用的绘图方法,而低层绘图操作控制和表现图形的能力更强,为用户自主绘图创造了条件。其实MATLAB的高层绘图函数都是利用低层绘图函数建立起来的。所以MATLAB的计算准确、效率高、使用快捷等优点常被广泛应用于科学和工程领域.关键字MATLAB语言 三维图形 图像处理 绘制一, 问题的提出MATLAB语言是当前国际学科界应用很广泛的一种软件,强大的绘图功能是MATLAB的特点之一。MATLAB提供了一系列的绘图函数,利用它强大的图像处理来绘制三维图形既简单而且也很方便。在绘制三维图形的过程中也用到了MATLAB语言的其他功能,绘制三维图形时用到了它提供的一些函数,利用这些函数可以方便的生成一些特殊矩阵,因此可生成一个坐标平面。MATLAB语言强大的功能也在二维三维绘图中的得到了很广泛的应用,利用它所提供的精细的图像处理功能,如MATLAB还提供了直接对句柄进行操作的一系列的低层的绘图操作。这类操作将图形的每个元素看做是一个独立的对象,系统给每个对象独立的分配一个句柄,以后可以通过该句柄对改图元素进行操作,而不影响图形的其他部分。高层绘图操作简单明了,使用户最常使用的绘图方法,而低层绘图操作控制和表现图形的能力更强,为用户自主绘图创造了条件,还可以对所绘制的三维图形作一个修饰的处理。MATLAB语言具有强大的以图形化显示矩阵和数组的能力,同时它给这些图形增加注释并且可以对图形进行标注和打印。MATLAB的图形技术包括三维的可视化、图形处理、动画等高层次的专业图形的高级绘图,例如图形的光照处理、色度处理以及四维数据的表现等。那么,如何把它强大的功能应用于实际应用中,下面我们将用实例说明MATBLE在三维作图中的应用。二,MATLAB的主要功能及特点MATLAB近几年广泛用于图像处理和识别, 使用MATLAB设计模式识别应用软件将使设计者获得更大的自由, 可以任意执行特殊的算法和实现复杂的操作,MATLAB之所以成为世界顶级的科学计算与数学应用软件, 是因为它随着版本的升级与不断完善而具有愈来愈强大的功能。(1)数值计算功能。(2)符号计算功能。(3)数据分析功能。(4)动态仿真功能。(5)图形文字统一处理功能。MATLAB 有三大特点:一是功能强大。主要包括数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算。二是界面友好,编程效率高。MATLAB 是一种以矩阵为基本单元的可视化程序设计语言, 语法结构简单, 数据类型单一,指令表达与标准教科书的数学表达式相近。三是开放性强。MATLAB 有很好的可扩充性, 可以把它当成一种更高级的语言去使用。使用它很容易编写各种通用或专用应用程序。四是matble拥有丰富的库函数。三, MATBLE在三维制图中的问题例1、两个同直径圆管相交程序m=30; %定义变量theta=(0:m)/m*2*pi; %取角度z=1.2*(-m:2:m)/m; %设置竖直圆管的高度r=ones(size(z); %生成同z大小的全一矩阵z1=z*ones(1,m+1); %生成第一个圆管的坐标矩阵x1=r*cos(theta); %生成第一个圆管的坐标矩阵y1=r*sin(theta); %生成第一个圆管的坐标矩阵surf(x1,y1,z1); %绘制竖立的圆管x=(-m:2:m)/m; %产生行矩阵x2=x*ones(1,m+1); %生成第一个圆管的坐标矩阵y2=r*cos(theta); %生成第一个圆管的坐标矩阵z2=r*sin(theta); %生成第一个圆管的坐标矩阵surf(x2,y2,z2); %绘制平放的圆管surf(x1,y1,z1);hold on; %竖立的圆管上添加平放的圆管surf(x2,y2,z2); %绘制平放的圆管axis equal,axis off %去掉坐标轴title(两个同直径圆管的相交); %添加标题hold off %关闭图形保持运行结果如图1所示。图1 两个同直径圆管的相交图形两个同直径圆管相交的前视图的程序x1=-1,-1,1,1,-1; %在x轴上取点y1=1.2,-1.2,-1.2,1.2,1.2; %在y轴上取点x2=-1,1; %在x轴上取点y2=1,-1; %在y轴上取点x3=1,-1; %在x轴上取点y3=1,-1; %在y轴上取点plot(x1,y1); %把各点连起来设置外围线hold on %设置图形保持状态plot(x2,y2); %绘制两条相交直线中的一条hold on %设置图形保持状态plot(x3,y3); %绘制两条相交直线中的另一条ax1=0,1,1; %在x轴上取点ay1=0,-1,1; %在y轴上取点ax2=0,-1,-1; %在y轴上取点fill(ax1,ay1,g); %填充颜色hold on %设置图形保持状态fill(ax2,ay2,g) %添充颜色axis equal,axis off; %去掉坐标轴title( 两个同直径圆管相交的前视图); %给绘制的图形添加标题运行结果如图2所示。图2 两个同直径圆管相交的前视图图形两个同直径圆管相交的侧视图程序r1=1; %定义变量t=0:pi/90:2*pi; %取角度xc=r1*cos(t); %水平圆柱zc=r1*sin(t); %水平圆柱fill(xc,zc,y); %给水平圆柱填充颜色hold on %设置图形保持状态tx1=1,1,-1,-1; %在x轴上取点ty1=0,1,1,0; %在y轴上取点plot(tx1,ty1); %绘制竖立的圆管hold on %设置图形保持状态tx2=1,1,-1,-1; %在x轴上取点ty2=0,-1,-1,0; %在y轴上取点plot(tx2,ty2); %绘制图形axis equal,axis off; %去掉坐标轴title( 两个同直径圆管相交的侧视图); %添加标题运行结果如图3所示。图3 两个同直径圆管相交的侧视图图形例2,mesh和plot是三度空间立体绘图的基本命令,mesh可画出立体网状图,plot则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。下列命令可画出由函数形成的立体网状图: 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); % 画出立体网状图 立体曲面图: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的矩阵 surf(xx, yy, zz); % 画出立体曲面图 peaks为了方便测试立体绘图,MATLAB提供了一个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) 我们亦可对peaks函数取点,再以各种不同方法进行绘图。meshz可将曲面加上围裙: x,y,z=peaks; meshz(x,y,z); 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); surfc同时画出曲面图与等高线: x,y,z=peaks; surfc(x,y,z); contour3画出曲面在三度空间中的等高线: contour3(peaks, 20); contour画出曲面等高线在XY平面的投影: contour(peaks, 20); 例三,螺旋线1,静态螺旋线a=0:0.1:20*pi;h=plot3(a.*cos(a),a.*sin(a),2.*a,b,linewidth,2);axis(-50,50,-50,50,0,150);grid onset(h,erasemode,none,markersize,22);xlabel(x轴);ylabel(y轴);zlabel(z轴);title(静态螺旋线); 2,圆柱螺旋线t=0:0.1:10*pi;x=r.*cos(t);y=r.*sin(t);z=t;plot3(x,y,z,h,linewidth,2);grid onaxis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);title(圆柱螺旋线)例三,旋转抛物面b=0:0.2:2*pi;X,Y=meshgrid(-6:0.1:6);Z=(X.2+Y.2)./4;meshc(X,Y,Z);axis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);title(旋转抛物面)或直接用:ezsurfc(X.2+Y.2)./4)例四,椭圆柱面load clownezsurf(2*cos(u),4*sin(u),v,0,2*pi,0,2*pi)view(-105,40) %视角处理shading interp%灯光处理colormap(map) %颜色处理grid on %添加网格线axis equal %使x,y轴比例一致xlabel(x轴);ylabel(y轴);zlabel(z轴); %添加坐标轴说明title(椭圆柱面) %添加标题例五,椭圆抛物面b=0:0.2:2*pi;X,Y=meshgrid(-6:0.1:6);Z=X.2./9+Y.2./4;meshc(X,Y,Z);axis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);title(椭圆抛物面)或直接用:ezsurfc(X.2./9+Y.2./4)例六,双叶双曲面ezsurf(8*tan(u)*cos(v),8.*tan(u)*sin(v),2.*sec(u),-pi./2,3*pi./2,0,2*pi)axis equalgrid onaxis squarexlabel(x轴);ylabel(y轴);zlabel(z轴);title(双叶双曲面)例七、双曲柱面load clownezsurf(2*sec(u),2*tan(u),v,-pi/2,pi/2,-3*pi,3*pi)hold on %在原来的图上继续作图ezsurf(2*sec(u),2*tan(u),v,pi/2,3*pi/2,-3*pi,3*pi)colormap(map)shading interpview(-15,30)axis equalgrid onaxis equalxlabel(x轴);ylabel(y轴);zlabel(z轴);title(双曲柱面)例八、双曲抛物面(马鞍面)X,Y=meshgrid(-7:0.1:7);Z=X.2./8-Y.2./6;meshc(X,Y,Z);view(85,20)axis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);title(双曲抛物面)或直接用:ezsurfc(X.2./8-Y.2./6)例九、抛物柱面X,Y=meshgrid(-7:0.1:7);Z=Y.2./8;h=mesh(Z);rotate(h,1 0 1,180) %旋转处理%axis(-8,8,-8,8,-2,6);axis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);title(抛物柱面)或直接用:ezsurfc(Y.2./8)例十、环面ezmesh(5+2*cos(u)*cos(v),(5+2*cos(u)*sin(v),2*sin(u),0,2*pi,0,2*pi)axis equalgrid onxlabel(x轴);ylabel(y轴);zlabel(z轴);title(环面)例十一、椭球ezsurfc(5*cos(u)*sin(v),(3*sin(u)*sin(v),4*cos(v),0,2*pi,0,2*pi)axis equalgrid onxlabel(x轴);ylabel(y轴);zlabel(z轴);title(椭球)例十二、单叶双曲面ezsurf(4*sec(u)*cos(v),2.*sec(u)*sin(v),3.*tan(u),-pi./2,pi./2,0,2*pi)axis equalgrid onxlabel(x轴);ylabel(y轴);zlabel(z轴);title(单叶双曲面)例十三、旋转单叶双曲面load clownezsurf(8*sec(u)*cos(v),8.*sec(u)*sin(v),2.*tan(u),-pi./2,pi./2,0,2*pi)colormap(map)view(-175,30)%alpha(.2) %透明处理axis equalgrid onaxis squarexlabel(x轴);ylabel(y轴);zlabel(z轴);title(旋转单叶双曲面) 例十四、圆柱面subplot(1,2,1)ezsurf(2*cos(u),2*sin(u),v,0,2*pi,0,2*pi)grid onshading interpaxis equalxlabel(x轴);ylabel(y轴);zlabel(z轴);title(圆柱面)subplot(1,2,2)cylinder(30)shading interpaxis squaretitle(调用cylinder函数所得圆柱面)利用MATLAB语言强大的绘图功能可以精确的绘制出一系列的三维图像。MATLAB提供了一系列的绘图函数,用户不仅不许考虑绘图细节,只需给出一些基本的参数就能得到所需要的图形,这一类函数称为高层绘图函数。除此之外,MATLAB还提供了直接对句柄进行操作的一系列的低层的绘图操作。这类操作将图形的每个元素看做是一个独立的对象,系统给每个对象独立的分配一个句柄,以后可以通过该句柄对改图元素进行操作,而不影响图形的其他部分。高层绘图操作简单明了,方便高效,使用户最常使用的绘图方法,而低层绘图操作控制和表现图形的能力更强,为用户自主绘图创造了条件。其实MATLAB的高层绘图函数都是利用低层绘图函数建立起来的。在绘制此三维图形的过程中,用到了MATLAB的很多强大的功能。四,课程体会经过一学期紧张而有序的课程学习,在忙碌之余也得到了颇多的收获。我深深体会到MATLAB语言相对于同类程序语言更方便更简洁易懂,而且,它所具有的强大的功能可以使我们解决很多用其他计算机语言不容易解决的问题。MATLAB提供了一系列的绘图函数,用户不仅不许考虑绘图细节,只需给出一些基本的参数就能得到所需要的图形,这一类函数称为高层绘图函数,这学期学习让我感受颇多,这门语言相对于其他计算机语言而言不仅简单易操作而且它还具备强大的功能,不管你做什么设计只要牵涉到编程,它总会提供一些函数给我们供我们应用。这是我在学习的过程中的一些技巧:1编程问题最头疼的不是编程序,而是调程序,所以在你的程序编完之后,一定要进行验证其正确性,你要尽量多的设想你的问题的复杂性,当然,要一步一步复杂,这样才能保证你的程序的适用性很强2 你把基本的知识看过之后,就需要找一个实际的程序来动手编一下,不要等所有的知识都学好之后再去编程,你要在编程的过程中学习,程序需要什么知识再去补充,编程是一点一点积累的,所以你要需做一些随手笔记什么的。3 你需要找一本matlab的函数工具词典,就像汉语词典一样,你要尽量多的熟悉matlab自带的函数,及其作用,因为matlab的自带函数特别多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用你自己编函数。这一点对你的程序非常有帮助,可以使你的程序简单,运行效率高,可以节省很多时间。4 最好找一个熟悉编程的人来辅助你的学习,这就包括很多编程的技巧问题,程序的结构设计问题,对于程序的运行效率非常有帮助。有的时候,你编出来的程序,能够运行,但是耗时太长,也就是说你的程序没有错,但是不适合实际。或者说,对于规模小的问题能够解决,但是规模大一点的问题就需要很长很长的时间,这就需要对程序的结构和算法问题进行改进。五,.学习matlab心得体会我觉以下几点对于学好matlab很重要:兴趣、悟性、勤奋、坚持。兴趣,不知道哪位名人说过“兴趣是最好的老师。”我觉得非常有道理,我曾对于matlab制作很感兴趣,,一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践,并在求知、探索、实践中产生愉快的情绪和体验。这样才能主动学习,并且学好到精通。悟性,通常人认为指顿悟,慧根,我觉得就是对一个问题不断的思索,将自己的体会和感受融合,获得属于自己的知识。有很多事情、问题,都是可以想明白的。只有不停的想,才能想明白,想透彻。勤奋,一勤天下无难事。从古到今,有多少名人不是有勤奋而得来成功的。现在的年轻人,一代比一代聪明。要不被别人淘汰,要超越别人,只有靠时间堆出来。每天多学一些,多积累一些。学习matlab也一样,想要学会,使用熟练,不花时间练习,写代码,亲自运行调试,是很难掌握好的。坚持,认准了的事情,就坚持做到底,直到有所收获。事实上,很多人实现不了自己的目标,很大程度上就是少了一种坚持、非要把事情干到底的精神,他们往往浅尝辄止,因此眼睁睁失去了可能到手的成功。光有兴趣,只有三分钟的热情是很难成事的。很多事情的成功取决于踏平坎坷地坚持的毅力。看准了的事情,如果没有百折不挠的坚持,绝难取得成功。看准的事情就不屈不挠地坚持干下去直至成功,才是智者的唯一选择。每一个人都明白所有梦想的实现都需要努力,然而,很多人只所以没有实现心中的梦想,就在于多了空想、犹豫,少了努力坚持。至于具体方法:1多动手写程序、调试这里有些常见错误提示信息供大家参考1.Subscript indices must either be real positive integers orlogicals中文解释:下标索引必须是正整数类型或者逻辑类型出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。2.Undefined function or variable a中文解释:函数或变量 a 没有定义3.Input argument x is undefined中文解释:输入变量 x 没有定义4.Matrix dimensions must agreeInner matrix dimensions must agree中文解释:矩阵的维数必须一致出错原因:这是由于运算符(= + - / * 等)两边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运算符。matlab通过“.”来区分矩阵运算和元素运算5.Function definitions are not permitted at the prompt or inscripts中文解释:不能在命令窗口或者脚本文件中定义函数出错原因:一旦在命令窗口写 function c = myPlus(a,b),此错误就会出现,因为函数只能定义在 m 文件中6. 1) X must have one or two columns 2)Vectors must be the samelengths中文解释:1. X 必须是 1 或者 2 列2. 向量长度必须一致7.One or more output argume
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租赁商场场地合同
- 公司员工激励演讲稿
- 养老护理行业老年人照护需求评估
- 肉羊养殖购销合同
- 生物医药领域新药研发投资合同
- 有关个人向公司借款协议书
- 城市道路施工安全管理规定
- 好品质故事解读
- 电影制作公司演员拍摄安全协议
- 2025年汉语拼音yw助力企业营销策略分析
- (高清版)JTG 3363-2019 公路桥涵地基与基础设计规范
- 周志华-机器学习-Chap01绪论-课件
- 中石油加油站管理标准规范管理部分
- 高中雷雨完整省公开课金奖全国赛课一等奖微课获奖课件
- 施工现场安全标准化施工手册(汇编)
- 《串珠》教案-2024鲜版
- 药物超敏反应综合征并人类免疫缺陷病毒感染1例及文献复习
- 经济数学(高等职业)全套教学课件
- 口腔种植学试题
- 网络传播概论(彭兰第5版) 课件全套 第1-8章 网络媒介的演变-网络传播中的“数字鸿沟”
- 口服止痛药物健康宣教
评论
0/150
提交评论