MATLAB三维图形绘制课件_第1页
MATLAB三维图形绘制课件_第2页
MATLAB三维图形绘制课件_第3页
MATLAB三维图形绘制课件_第4页
MATLAB三维图形绘制课件_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

4.2MATLAB的

三维图形绘制一、绘制三维线图命令plot3plot3是用来绘制三维曲线的,它的使用格式与二维绘图的plot命令很相似。语法: plot3(x,y,z,'s') %绘制三维曲线 plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…)

%绘制多条三维曲线说明:当x、y、z是同维向量时,则绘制以x、y、z元素为坐标的三维曲线;当x、y、z是同维矩阵时,则绘制三维曲线的条数等于矩阵的列数。s是指定线型、色彩、数据点形的字符串。4.2MATLAB的

三维图形绘制一、绘1二、绘制三维网格图和曲面图1.meshgrid命令为了绘制三维立体图形,MATLAB的方法是将x方向划分为m份,将y方向划分为n份,meshgrid命令是以x、y向量为基准,产生在x-y平面的各栅格点坐标值的矩阵。语法: [X,Y]=meshgrid(x,y)说明:X、Y是栅格点的坐标,为矩阵;x、y为向量。例如,将x(1×m)向量和y(1×n)向量转换为(n×m)的矩阵:二、绘制三维网格图和曲面图1.meshgrid命令22.三维网格图三维网格图是由一些四边形相互连接在一起所构成的一种曲面。语法: mesh(z) %画三维网线图 mesh(x,y,z,c)说明:当只有参数z时,以z矩阵的行下标作为x坐标轴,把z的列下标当作y坐标轴;x、y分别为x、y坐标轴的自变量;当有x、y、z参数时,c是指定各点的用色矩阵,当c省略时默认用色矩阵是z的数据。如果x、y、z、c四个参数都有,则应该都是维数相同的矩阵。2.三维网格图三维网格图是由一些四边形相互33.三维曲面图

语法: surf(z) %画三维曲面图 surf(x,y,z,c)说明:参数设置与mesh命令相同,c也可以省略。4.其它立体网线图和曲面图meshc命令为立体网状图加等高线;meshz为立体网状图加“围裙”。3.三维曲面图

语法:4.其它立体网线图和曲面图4三、绘制三维旋转体1、球面图语法: sphere(n) %产生单位球面,n为旋转圆周上的分

格线条数,默认n=20。

[x,y,z]=sphere(n)%生成三个(n+1)*(n+1)阶的矩阵

利用surf或mesh命令产生单位球面。2、柱面图语法: cylinder(r,n) %以母线向量r生成单位柱面,

默认n=20,r=[1,1]。

[x,y,z]=cylinder(r,n)%生成柱面的x,y,z数据矩阵,

利用surf或mesh命令产生单位高度柱面。三、绘制三维旋转体1、球面图语法:2、柱面图语法:5四、立体图形与图轴的控制1.网格的隐藏语法: hiddenoff %显示被遮盖的网格 hiddenon %隐藏被遮盖的网格2.改变视角语法: view([az,el]) %通过方位角和俯仰角改变视角

说明:az表示方位角(azimuth),el表示俯仰角(elevation)四、立体图形与图轴的控制1.网格的隐藏语法:2.改变视角语法6默认值:az=-37.5°,el=30°默认值:az=-37.5°,el=30°7五、色彩的控制1.色图(colormap)(1)RGB三元组RGB三元数组每行表示一种色彩,数组元素R、G、B在0~1之间取值,分别表示红、绿、蓝基色的相对亮度,如下表所示。colormap([R,G,B])——色图设定函数colormap色图函数——色图设定函数colormap色图函数(m)——产生m×3的色图矩阵

缺省64×3。五、色彩的控制1.色图(colormap)(1)RGB三元8MATLAB三维图形绘制课件9MATLAB三维图形绘制课件102.色图的显示和处理(1)色图的显示

rgbplot命令语法: rgbplot(map)说明:map是表4.8中的各预定义色图函数,rgbplot命令可画出以行数为自变量红、绿、蓝相对亮度分量的直线图,反映R、G、B三色比重的变化。

colorbar命令以不同颜色来代表曲面的高度,垂直显示颜色标尺。2.色图的显示和处理(1)色图的显示11(2)浓淡处理shading【例】使用浓淡处理peaks函数曲面图。(3)亮度处理brighten语法:

brighten(a)说明:当0<=a<=1时,色图加亮,当-1<=a<0时,色图变暗。(2)浓淡处理shading【例】使用浓淡处理peaks函124.3MATLAB的特殊图形绘制一、条形图——条形图常用于对统计的数据进行作图,特别适用于少量且离散的数据。语法: bar(x,y) %画条形图 bar3(y,z,width,'参数') %画三维条形图【例】用条形图表示某年一月份中3日~6日连续四天的温度数据,y矩阵的各列分别表示平均温度、最高温度和最低温度,用条形图和三维条形图分别表示。4.3MATLAB的特殊图形绘制一、条形图——条形图常用13>>x=3:6;>>y=[5.300013.00000.40005.100011.8000-1.70003.70008.10000.60001.50007.7000-4.5000]>>bar(x,y) %画条形图

>>bar3(x,y) %画三维条形图

图4.23(a)条形图(b)三维条形图>>x=3:6;图4.23(a)条形图14二、直方图语法: hist(y,m) %统计每段的元素个数并画出直方图 hist(y,x)%x是向量,用于指定所分每个数据段的中间值三、饼图饼图是用于显示向量中的各元素占向量元素总和的百分比。语法: pie(x,explode,’label’) %画二维饼图 pie3(x,explode,’label’) %画三维饼图说明:x是向量;explode是与x同长度的向量,用来决定是否从饼图中分离对应的一部分块,非零元素表示该部分需要分离;’label’是用来标注饼图的字符串数组。分段的个数,默认为10

二、直方图语法:三、饼图饼图是用于显示向量中的各元素占向量元15【例4.21】绘制四个季度支出额的饼图。

y=[200100250400]; %四个季度支出额explode=[0010];

pie(y,explode,{'第一季度','第二季度','第三季度','第四季度'})

【例4.21】绘制四个季度支出额的饼图。16四、离散数据图

MATLAB提供了多个绘制离散数据的命令,有stem、stem3、stairs和scatter等。【例】使用几种绘制离散数据的命令来显示

的离散数据。五、等高线图语法: contour3(Z,n) %绘制Z矩阵的三维等高线 contour(x,y,z,n)

%绘制以x和y指定x、y坐标的二维等高线说明:n为等高线的条数,省略时为自动条数。四、离散数据图

MATLAB提供了多个绘制离散数据的命令,有17

x=0:0.1:2*pi;y=sin(x).*exp(-2*x);subplot(3,1,1)stem(x,y,'filled') %画火柴杆图subplot(3,1,2)stairs(x,y) %画阶梯图subplot(3,1,3)

scatter(x,y) %画点图

x=0:0.1:2*pi;18六、对数坐标和极坐标图1.对数坐标图形语法: semilogx(x,y,‘参数’)%绘制x为对数坐标的曲线 semilogy(x,y,‘参数’)%绘制y为对数坐标的曲线 loglog(x,y,‘参数’) %绘制x、y都为对数坐标的曲线2.极坐标图语法: polar(theta,radius,‘参数’) %绘制极坐标图说明:theta为相角,radius为离原点的距离。六、对数坐标和极坐标图1.对数坐标图形语法:2.极坐标图19【例4.23】求传递函数为的对数幅频特性曲线,横坐标为w,按对数坐标。

w=logspace(-2,3,20); %频率w为0.01到1000Aw=1./(w.*sqrt((0.5*w).^2+1)); %计算幅频Lw=20*log10(Aw); %计算对数幅频semilogx(w,Lw)title('对数幅频特性曲线')

【例4.23】求传递函数为20七、复向量图

1.compass命令compass绘制的是以原点为起点的一组复向量,因此又称为罗盘图。语法: compass(u,v) %画罗盘图 compass(Z)说明:u、v分别为复向量的实部和虚部;当只有一个参数Z时,则相当于compass(real(Z),imag(Z))。2.feather命令feather绘制的是起点为(k,0)的复向量图,又称为羽毛图。语法: feather(u,v) %画羽毛图 feather(Z)图

4.31(a)罗盘图(b)羽毛图七、复向量图

1.compass命令2.feather命214.4对话框——用于计算机与用户进行交互的界面1.输入信息对话框输入对话框为用户的输入信息提供了界面,使用inputdlg命令创建。语法:answer=inputdlg(prompt,title,lineno,defans,addopts)

%创建输入对话框说明:answer返回用户的输入,为元胞数组;prompt为提示信息字符串,用引号括起来,为元胞数组;title为标题字符串,用引号括起来,可以省略;lineno用于指定输入值的行数,可以省略;defans为输入项的默认值,用引号括起来,是元胞数组可以省略;addopts指定对话框是否可以改变大小,取on或off,省略时为off表示不能改变大小。4.4对话框——用于计算机与用户进行交互的界面1.输入22【例】利用输入对话框输入二阶系统的系数。

程序分析:prompt、defans和p都是元胞数组。如果单击“Cancel”按钮,则返回空的元胞数组。>>prompt={'请输入阻尼系数','请输入无阻尼振荡频率'};>>defans={'0.707','1'};>>p=inputdlg(prompt,'输入参数',1,defans)

【例】利用输入对话框输入二阶系统的系数。程序分析:prom232.输出信息对话框(1)消息框语法: msgbox(message,title,icon,icondata,iconcmap,…CreateMode)%创建消息框说明:message为显示的信息,可以是字符串或数组;title为标题,是字符串可省略;icon为显示的图标,可取值为“none”(无图标)、“error”(出错图标)、“help”(帮助图标)、“warn”(警告图标)或“custom”(自定义图标),也可省略;当使用“custom”时,用icondata定义图标的数据,用iconcmap定义图标的颜色映象;CreateMode为对话框的产生模式可省略,取值为“modal”(有模式)、“replace”(无模式可代替同名的对话框)、“non-modal”(默认为无模式)。(有模式对话框是指在对话框关闭之前,用户无法进行其它程序的运行)2.输出信息对话框说明:message为显示的信息,可以是24【上例续】使用消息框显示当阻尼系数大于1时的警告信息,如图所示。>>msgbox('阻尼系数输入范围出错','警告','warn')

【上例续】使用消息框显示当阻尼系数大于1时的警告信息,如图所25(2)其它对话框【例续】使用警告对话框显示当阻尼系数大于1时的警告信息。

>>warndlg('阻尼系数输入范围出错','警告')

【例续】使用出错提示框显示当阻尼系数小于0时出错信息。

>>errordlg('阻尼系数输入出错','出错')

【例续】使用帮助提示框显示阻尼系数的范围。>>helpdlg('欠阻尼系数应大于0小于1','帮助')

(2)其它对话框【例续】使用警告对话框显示当阻尼系数大于126(3)提问提示框【例续】使用提问提示框使用户确认。>>button=questdlg('是否确认?','Areyousure?','Yes','No','Yes')

程序分析:有两个按钮,默认的指定按钮为“Yes”。即当用户按下回车键时,返回“Yes”,当用户单击按钮“No”时,返回“No”。(3)提问提示框【例续】使用提问提示框使用户确认。程序分273.文件管理对话框(1)打开文件对话框uigetfile语法:[FileName,PathName]=uigetfile(FiltrEspec,Title,x,y)说明:FileName和PathName分别为返回的文件名和路径,可省略,如果按“取消”按钮或发生错误,都返回0;FiltrEspec指定初始时显示的文件名,可以用通配符“*”表示,当省略时,则自动列出当前路径下的所有“*.m”文件和目录;Title为对话框标题,可省略;x、y分别指定对话框在屏幕上的位置(到屏幕左上角的距离),单位是像素,可省略。3.文件管理对话框(1)打开文件对话框uigetfile28【例】利用打开文件对话框选择MATLAB目录下的文件license.txt,如图所示。程序分析:在屏幕的左上角位置显示打开文件对话框,单击“打开”按钮,返回文件名和路径名到fname和pname变量。>>[fname,pname]=uigetfile('*.*','打开文件')

【例】利用打开文件对话框选择MATLAB目录下的文件lice29(2)保存文件对话框uiputfile语法:[FileName,PathName]=uiputfile(FiltrEspec,Title,x,y)【例续】利用保存文件对话框来选择文件。>>[fname1,pname1]=uiputfile('Ex0431.mat','保存文件')

(2)保存文件对话框uiputfile语法:【例续】利用保30什么是句柄图形句柄图形(HandleGraphics):利用底层绘图函数,通过对对象属性的设置与操作实现绘图。句柄图形中所有图形操作都是针对图形对象而言的。句柄图形充分体现了面向对象的程序设计。4.5句柄图形什么是句柄图形句柄图形(HandleGraphics):31句柄图形的功能句柄图形可以随意改变matlab生成图形的方式。句柄图形允许你定制图形的许多特性,无论是对图形做一点小改动,还是影响所有图形输出的整体改动。句柄图形的特性高层绘图函数是无法实现的句柄图形的功能32一、句柄图形体系句柄图形是一种面向对象的绘图系统,又称为低层图形。句柄图形体系由若干个图形对象组成,如图所示。一、句柄图形体系句柄图形是一种面向对象的绘图系统,又称为低层33什么是句柄?句柄是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息。各图形对象的句柄数据格式:根屏幕0图形窗口整数,表示图形窗口数其它对象对应的符点数句柄(handle)与句柄操作什么是句柄?句柄(handle)与句柄操作34

所有能创建图形对象的matlab函数都可给出所创建图形对象的句柄例:创建1号窗口,返回句柄h=figure(1)h=1返回值为窗口号数例:h=line(1:6,1:6)创建线对象的同时也建立了一个唯一的句柄变量h是句柄值——符点数所有能创建图形对象的matlab函数都可给出所创建图形对象35二、图形对象的操作

1.图形对象的创建每次创建一个对象时,就为它建立一个唯一的句柄。每个命令的格式及功能如表所示。二、图形对象的操作

1.图形对象的创建每次创建一个362.对象句柄的获取

(1)当前对象句柄的获取MATLAB提供了三个获取当前对象句柄的命令:语法: gcf %获取当前图形窗口句柄 gca %获取当前坐标轴句柄 gco %获取被鼠标最近点击对象的句柄【例】使用上述命令获取图形对象的句柄。2.对象句柄的获取

(1)当前对象句柄的获取MATLAB提37(2)查找对象用命令findobj可以快速查找所有对象,以及获取指定属性值的对象句柄。语法: h=findobj %返回根对象和所有子对象的句柄 h=findobj(h_obj)%返回指定对象的句柄 h=findobj(‘PropertyName’,PropertyValue)

%返回符合指定属性值的对象句柄 h=findobj(h_obj,‘PropertyName’,PropertyValue)

%在指定对象及子对象中查找符合指定属性

值的对象句柄说明:h_obj为指定对象句柄;PropertyName为属性名;PropertyValue为属性值。【例】使用findobj命令获取图形对象的句柄。(2)查找对象用命令findobj可以快速查找所有对象,38(3)追溯父对象和子对象的句柄如果一个对象的句柄已知,则可以追溯到其父对象和子对象的句柄。语法: h_parent=get(h_obj,’parent’) %追溯父对象的句柄 h_children=get(h_obj,’children’)

%追溯子对象的句柄3.对象句柄的删除删除图形对象使用命令delete(h_obj),该命令将删除句柄所指对象和所有子对象,而且不提示确认,使用时要小心。(3)追溯父对象和子对象的句柄如果一个对象的句柄已知,则可39三、图形对象属性的获取和设置

1.创建对象时设置属性对象的属性可以在创建时设置,在创建时句柄图形对象可以设置多个属性。【例4.29】创建图形对象。>>h_fig=figure('color','red','menubar','none','position',[0,0,300,300])程序分析:创建一个窗口,背景为红色,没有菜单条,在屏幕的(0,0)位置,宽度、高度为300。三、图形对象属性的获取和设置

1.创建对象时设置属性对象的属402.用get函数获取指定对象的属性值语法: get(h_obj) %获取句柄对象所有属性的当前值 get(h_obj,'PropertyName')

%获取句柄对象指定属性的当前值3.用set函数设置对象的属性值语法: set(h_obj) %显示句柄对象所有属性和属性值 set(h_obj,'PropertyName')

%显示句柄对象指定属性名的属性值 set(h_obj,'PropertyName','PropertyValue')

%设置句柄对象指定属性的属性值 set(h_obj,'PropertyStructure')

%用结构数组设置句柄对象指定属性的属性值2.用get函数获取指定对象的属性值语法:3.用set函414.6图形用户界面(GUI)设计MATLAB设计图形用户界面的方法有两种:

——使用可视化的界面环境和通过编写程序。一、可视化的界面环境MATLAB提供了一个可视化的图形用户界面开发环境GUIDE(GraphicalUserInterfaceDevelopmentEnvironment),打开可视化界面环境的方法有以下几种:(1)选择菜单“File”——“New”——“GUI”命令;(2)在命令窗口输入“Guide”命令或输入“GuideFilename”就会出现Guide快速开始界面。4.6图形用户界面(GUI)设计MATLAB设计图形用户42用户界面开发环境被分为四个部分:菜单栏Guide工具栏图形控件面板界面编辑客户区用户界面开发环境被分为四个部分:菜单栏43GUI开发过程可分为4个步骤:菜单的设计和布局菜单的编程GUI界面的设计和布局GUI的编程GUIDE环境将建立的GUI文件保存为两个伴随文件:

——FIG文件和M文件GUI开发过程可分为4个步骤:菜单的设计和布局GUI44二、GUIDE常用工具LayoutEditor:布局编辑器AlignmentTool:对齐工具PropertyInspector:对象属性观察器MenuEditor:菜单编辑器ObjectBrowser:对象浏览器二、GUIDE常用工具LayoutEditor:布局编辑器45三、菜单1.使用菜单编辑器创建菜单2.编程创建菜单3.回调函数语法:h_menu=uimenu(h_parent,‘propertyname’,propervalue,…)三、菜单1.使用菜单编辑器创建菜单2.编程创建菜单3.回46【例】编程创建如图所示的菜单。h_fig=gcfh_fig=1h_menu=uimenu(h_fig,'label','Paint'); %创建菜单Painth_menu1=uimenu(h_menu,'label','Circ

温馨提示

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

评论

0/150

提交评论