#MATLAB三维图形绘制课件.ppt

上传人(卖家):三亚风情 文档编号:2972386 上传时间:2022-06-17 格式:PPT 页数:51 大小:442KB
下载 相关 举报
#MATLAB三维图形绘制课件.ppt_第1页
第1页 / 共51页
#MATLAB三维图形绘制课件.ppt_第2页
第2页 / 共51页
#MATLAB三维图形绘制课件.ppt_第3页
第3页 / 共51页
#MATLAB三维图形绘制课件.ppt_第4页
第4页 / 共51页
#MATLAB三维图形绘制课件.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、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是指定线型、色是指定线型、色彩、数据点

2、形的字符串。彩、数据点形的字符串。二、绘制三维网格图和曲面图1. meshgrid命令命令 为了绘制三维立体图形,MATLAB的方法是将x方向划分为m份,将y方向划分为n份,meshgrid命令是以x、y向量为基准,产生在x-y平面的各栅格点坐标值的矩阵。语法:语法:X,Ymeshgrid(x,y) 说明:X、Y是栅格点的坐标,为矩阵;x、y为向量。例如,将x(1m)向量和y(1n)向量转换为(nm)的矩阵:2. 三维网格图 三维网格图是由一些四边形相互连接在一起所构成的一种曲面。语法:语法:mesh(z) %画三维网线图mesh(x,y,z,c) 说明说明:当只有参数z时,以z矩阵的行下标作

3、为x坐标轴,把z的列下标当作y坐标轴;x、y分别为x、y坐标轴的自变量;当有x、y、z参数时,c是指定各点的用色矩阵,当c省略时默认用色矩阵是z的数据。如果x、y、z、c四个参数都有,则应该都是维数相同的矩阵。3. 三维曲面图语法:语法:surf (z) %画三维曲面图surf (x,y, z,c) 说明:参数设置与mesh命令相同,c也可以省略。 4. 其它立体网线图和曲面图其它立体网线图和曲面图 meshc命令为立体网状图加等高线;meshz为立体网状图加“围裙”。三、绘制三维旋转体1、球面图、球面图语法:语法:sphere (n) %产生单位球面,n为旋转圆周上的分 格线条数,默认n=2

4、0。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网格的隐藏网格的隐藏语法:语法:hidden off %显示被遮盖的网格hidden on %隐藏被遮盖的网格2改变视角改变视角语法:语法:view(az,el) %通过方位角和俯仰角改变视角说明:az表示方位角(

5、azimuth),el表示俯仰角(elevation)默认值:az=-37.5,el=30五、色彩的控制1色图色图(colormap)(1) RGB三元组三元组RGB三元数组每行表示一种色彩,数组元素R、G、B在01之间取值,分别表示红、绿、蓝基色的相对亮度,如下表所示。 colormap( R,G,B) 色图设定函数 colormap 色图函数色图函数 色图设定函数 colormap 色图函数色图函数(m)产生m3的色图矩阵 缺省643。表表4.7 常常 用用 颜颜 色色 的的R G B成成 分分R G B成成 分分颜颜 色色R ed (红红 色色 )G reen(绿绿 色色 )B lu e

6、(蓝蓝 色色 )B lack(黑 )000W hite(白 )111R ed(红 )100G reen(绿 )010B lue(蓝 )001Y ellow (黄 )110Mag enta(品 红 )101C yan(青 )011G ray(灰 )0.50.50.5D ark red(暗 红 )0.500C opper(铜 色 )10.620.4A quam arine(碧 绿 )0.4910.83表表4.8 预预 定定 义义 色色 图图 的的 函函 数数 表表命命 令令说说 明明hsvH S V的 颜 色 对 照 表 (默 认 值 ), 以 红 色 开 始 和 结 束hot代 表 暖 色 对

7、照 表 , 黑 、 红 、 黄 、 白 浓 淡 色cool代 表 冷 色 对 照 表 , 青 、 品 红 浓 淡 色sum m er代 表 夏 天 色 对 照 表 , 绿 、 黄 浓 淡 色g ray代 表 灰 色 对 照 表 , 灰 色 线 性 浓 淡 色copper代 表 铜 色 对 照 表 , 铜 色 线 性 浓 淡 色autum n代 表 秋 天 颜 色 对 照 表 , 红 、 黄 浓 淡 色w inter代 表 冬 天 色 对 照 表 , 蓝 、 绿 浓 淡 色spring代 表 春 天 色 对 照 表 , 青 、 黄 浓 淡 色bone代 表 “ X光 片 ” 的 颜 色 对 照

8、表pink代 表 粉 红 色 对 照 表 , 粉 红 色 线 性 浓 淡 色flag代 表 “ 旗 帜 ” 的 颜 色 对 照 表 , 红 、 白 、 蓝 、 黑 交 错 色jetH S V的 变 形 , 以 蓝 色 开 始 和 结 束prim代 表 三 棱 镜 对 照 表 , 红 、 橘 黄 、 黄 、 绿 、 蓝 交 错 色2色图的显示和处理(1) 色图的显示色图的显示 rgbplot命令语法:语法:rgbplot(map) 说明:map是表4.8中的各预定义色图函数,rgbplot命令可画出以行数为自变量红、绿、蓝相对亮度分量的直线图,反映R、G、B三色比重的变化。 colorbar命令

9、以不同颜色来代表曲面的高度,垂直显示颜色标尺。(2) 浓淡处理shading表表4.9shading命命令令的的 用用法法命命令令功功能能shading interp使小片根据四顶点的颜色产生连续的变化,或根据网线的线段两端产生连续的变化,这种方式着色细腻但最费时。shading flat小片或整段网线的颜色是一种颜色。shading faceted在flat着色的基础上,同时在小片交接的边勾画黑色,这种方式立体表现力最强(默认方式)。【例例】使用浓淡处理peaks函数曲面图。(3) 亮度处理亮度处理brighten语法:语法: brighten(a)说明:当0=a=1时,色图加亮,当-1=a

10、x=3:6; y=5.3000 13.0000 0.40005.1000 11.8000 -1.70003.7000 8.1000 0.60001.5000 7.7000 -4.5000 bar(x,y) %画条形图画条形图 bar3(x,y) %画三维条形图画三维条形图 图图4.23 (a) 条形图条形图 (b) 三维条形图三维条形图二、直方图语法:语法:hist(y,m) %统计每段的元素个数并画出直方图hist(y,x) % x是向量,用于指定所分每个数据段 的中间值 三、饼图三、饼图饼图是用于显示向量中的各元素占向量元素总和的百分比。语法:语法:pie(x,explode,label)

11、 %画二维饼图pie3(x,explode,label) %画三维饼图说明:x是向量;explode是与x同长度的向量,用来决定是否从饼图中分离对应的一部分块,非零元素表示该部分需要分离;label是用来标注饼图的字符串数组。分段的个数分段的个数, 默认为默认为10 【例4.21】绘制四个季度支出额的饼图。 y=200 100 250 400;%四个季度支出额 explode=0 0 1 0; pie(y,explode,第一季度,第二季度,第三季度,第四季度) 四、离散数据图MATLAB提供了多个绘制离散数据的命令,有stem、stem3、stairs和scatter等。【例例】使用几种绘制

12、离散数据的命令来显示 的离散数据。2sin( )xyex五、等高线图五、等高线图语法:语法: contour3(Z,n) %绘制Z矩阵的三维等高线contour(x,y,z,n) %绘制以x和y指定x、y坐标的二维等高线说明:n为等高线的条数,省略时为自动条数。 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) %画点图画点图 六、对数坐标和极坐标图1. 对数

13、坐标图形对数坐标图形语法:语法:semilogx(x,y,参数参数) %绘制x为对数坐标的曲线semilogy(x,y,参数参数) %绘制y为对数坐标的曲线loglog(x,y,参数参数) %绘制x、y都为对数坐标的曲线2. 极坐标图极坐标图语法:语法: polar(theta,radius,参数参数) %绘制极坐标图说明:theta为相角,radius为离原点的距离。 【例4.23】求传递函数为 的对数幅频特性曲线,横坐标为w,按对数坐标。 w=logspace(-2,3,20); %频率w为0.01到1000 Aw=1./(w.*sqrt(0.5*w).2+1); %计算幅频 Lw=20*

14、log10(Aw); %计算对数幅频 semilogx(w,Lw) title(对数幅频特性曲线) ) 1s5 . 0( s1) s (G七、复向量图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)图

15、图 4.31 (a)罗盘图罗盘图 (b)羽毛图羽毛图4.4 对话框 用于计算机与用户进行交互的界面1. 输入信息对话框输入信息对话框输入对话框为用户的输入信息提供了界面,使用inputdlg命令创建。语法:语法:answer = inputdlg(prompt,title,lineno,defans,addopts) %创建输入对话框说明:answer 返回用户的输入,为元胞数组;prompt为提示信息字符串,用引号括起来,为元胞数组;title为标题字符串,用引号括起来,可以省略;lineno用于指定输入值的行数,可以省略;defans为输入项的默认值,用引号括起来,是元胞数组可以省略;ad

16、dopts指定对话框是否可以改变大小,取on或off,省略时为off表示不能改变大小 。【例例】利用输入对话框输入二阶系统的系数。 程序分析:prompt、defans和p都是元胞数组。如果单击“Cancel”按钮,则返回空的元胞数组。prompt=请输入阻尼系数请输入阻尼系数,请输入无阻尼振荡频率请输入无阻尼振荡频率;defans=0.707,1; p=inputdlg(prompt,输入参数输入参数,1,defans) 2. 输出信息对话框输出信息对话框语法:语法:msgbox(message,title,icon,icondata,iconcmap, CreateMode) %创建消息框

17、说明:message为显示的信息,可以是字符串或数组;title为标题,是字符串可省略;icon为显示的图标,可取值为“none”(无图标)、“error”(出错图标)、“help”(帮助图标)、“warn”(警告图标)或“custom”(自定义图标),也可省略;当使用“custom”时,用icondata定义图标的数据,用iconcmap定义图标的颜色映象;CreateMode为对话框的产生模式可省略,取值为“modal”(有模式)、“replace”(无模式可代替同名的对话框)、“non-modal”(默认为无模式)。(有模式对话框是指在对话框关闭之前,用户无法进行其它程序的运行) 【上例

18、续上例续】使用消息框显示当阻尼系数大于1时的警告信息,如图所示。msgbox(阻尼系数输入范围出错阻尼系数输入范围出错,警告警告,warn) 【例续例续】使用警告对话框警告对话框显示当阻尼系数大于1时的警告信息。 warndlg(阻尼系数输入范围出错阻尼系数输入范围出错,警告警告) 【例续例续】使用出错提示框出错提示框显示当阻尼系数小于0时出错信息。 errordlg(阻尼系数输入出错阻尼系数输入出错,出错出错) 【例续例续】使用帮助提示框帮助提示框显示阻尼系数的范围。 helpdlg(欠阻尼系数应大于欠阻尼系数应大于0小于小于1,帮助帮助) 【例续例续】使用提问提示框使用户确认。 butto

19、n=questdlg(是否确认?是否确认?,Are you sure?,Yes,No,Yes) 程序分析:有两个按钮,默认的指定按钮为“Yes”。即当用户按下回车键时,返回“Yes”,当用户单击按钮“No”时,返回“No”。3. 文件管理对话框文件管理对话框(1) 打开文件对话框uigetfile语法:语法: FileName, PathName = uigetfile(FiltrEspec, Title,x,y)说明:FileName和PathName分别为返回的文件名和路径,可省略,如果按“取消”按钮或发生错误,都返回0;FiltrEspec指定初始时显示的文件名,可以用通配符“*”表示,

20、当省略时,则自动列出当前路径下的所有“*.m”文件和目录;Title为对话框标题,可省略;x、y分别指定对话框在屏幕上的位置(到屏幕左上角的距离),单位是像素,可省略。【例例】利用打开文件对话框选择MATLAB目录下的文件license.txt,如图所示。程序分析:在屏幕的左上角位置显示打开文件对话框,单击“打开”按钮,返回文件名和路径名到fname和pname变量。 fname,pname=uigetfile(*.*,打开文件打开文件) (2) 保存文件对话框uiputfile语法:语法: FileName, PathName = uiputfile(FiltrEspec, Title,x,

21、y)【例续例续】利用保存文件对话框来选择文件。 fname1,pname1=uiputfile(Ex0431.mat,保存文件保存文件) 什么是句柄图形 句柄图形(Handle GraphicsHandle Graphics) : 利用底层绘图函数,通过对对象属性的设置与操作实现绘图。 句柄图形中所有图形操作都是针对图形对象而言的。 句柄图形充分体现了面向对象的程序设计。4.5 句柄图形句柄图形的功能v句柄图形可以随意改变matlab生成图形的方式。v句柄图形允许你定制图形的许多特性,无论是对图形做一点小改动,还是影响所有图形输出的整体改动。v句柄图形的特性高层绘图函数是无法实现的一、句柄图形

22、体系一、句柄图形体系句柄图形是一种面向对象的绘图系统,又称为低层图形。句柄图形体系由若干个图形对象组成,如图所示。 什么是句柄? 句柄是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息。 各图形对象的句柄数据格式: 根屏幕 0 0 图形窗口 整数,表示图形窗口数 其它对象 对应的符点数句柄(handle)handle)与句柄操作 所有能创建图形对象的matlabmatlab函数都可给出所创建图形对象的句柄例:创建1号窗口,返回句柄 h=figure(1) h=1 返回值为窗口号数例:h=line(1:6,1:6)创建线对象的同时也建立了一个唯一的句柄 变量h是句柄值符点数二、图形对

23、象的操作1图形对象的创建图形对象的创建 每次创建一个对象时,就为它建立一个唯一的句柄。每个命令的格式及功能如表所示。 2对象句柄的获取(1) 当前对象句柄的获取当前对象句柄的获取MATLAB提供了三个获取当前对象句柄的命令:语法:语法:gcf %获取当前图形窗口句柄gca %获取当前坐标轴句柄gco %获取被鼠标最近点击对象的句柄【例例】使用上述命令获取图形对象的句柄。(2) 查找对象查找对象用命令 findobj可以快速查找所有对象,以及获取指定属性值的对象句柄。语法:语法:h=findobj %返回根对象和所有子对象的句柄h=findobj(h_obj) %返回指定对象的句柄h=findo

24、bj(PropertyName,PropertyValue) %返回符合指定属性值的对象句柄h=findobj(h_obj, PropertyName, PropertyValue)%在指定对象及子对象中查找符合指定属性 值的对象句柄说明:h_obj为指定对象句柄;PropertyName为属性名;PropertyValue为属性值。【例例】使用findobj命令获取图形对象的句柄。(3) 追溯父对象和子对象的句柄追溯父对象和子对象的句柄如果一个对象的句柄已知,则可以追溯到其父对象和子对象的句柄。语法:语法:h_parent=get(h_obj,parent) %追溯父对象的句柄h_child

25、ren=get(h_obj,children) %追溯子对象的句柄3对象句柄的删除对象句柄的删除删除图形对象使用命令delete(h_obj),该命令将删除句柄所指对象和所有子对象,而且不提示确认,使用时要小心。三、图形对象属性的获取和设置1创建对象时设置属性创建对象时设置属性对象的属性可以在创建时设置,在创建时句柄图形对象可以设置多个属性。【例例4.29】创建图形对象。 h_fig=figure(color,red,menubar,none,position,0,0,300,300)程序分析:创建一个窗口,背景为红色,没有菜单条,在屏幕的(0,0)位置,宽度、高度为300。2. 用用get函

26、数获取指定对象的属性值函数获取指定对象的属性值语法:语法: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) %用结构数组设置句柄对象指定属性的属

27、性值4.6 图形用户界面图形用户界面(GUI)设计设计MATLAB设计图形用户界面的方法有两种: 使用可视化的界面环境和通过编写程序。一、可视化的界面环境一、可视化的界面环境MATLAB提供了一个可视化的图形用户界面开发环境GUIDE(Graphical User Interface Development Environment),打开可视化界面环境的方法有以下几种:(1) 选择菜单“File”“ New”“GUI”命令;(2) 在命令窗口输入“Guide”命令或输入“Guide Filename”就会出现Guide快速开始界面。用户界面开发环境被分为四个部分: 菜单栏 Guide工具栏 图

28、形控件面板 界面编辑客户区GUI开发过程可分为4个步骤: 菜单的设计和布局 菜单的编程 GUI界面的设计和布局 GUI的编程 GUIDE环境将建立的GUI文件保存为两个伴随文件: FIG文件和M文件二、GUIDE常用工具 Layout Editor:布局编辑器 Alignment Tool:对齐工具 Property Inspector:对象属性观察器 Menu Editor:菜单编辑器 Object Browser:对象浏览器三、菜单1.使用菜单编辑器创建菜单使用菜单编辑器创建菜单2. 编程创建菜单编程创建菜单3. 回调函数回调函数语法:h_menu=uimenu(h_parent, pro

29、pertyname,propervalue,)【例】编程创建如图所示的菜单。h_fig=gcfh_fig = 1 h_menu=uimenu(h_fig,label,Paint); %创建菜单Paint h_menu1=uimenu(h_menu,label,Circle); %创建Paint的子菜单Circle h_menu2=uimenu(h_menu,label,Color); %创建Paint的子菜单Color h_menu21=uimenu(h_menu2,label,Red); %创建Color的子菜单Red h_menu22=uimenu(h_menu2,label,Blue);

30、 %创建Color的子菜单Blue 【上例续】将已创建的菜单修改,并添加回调函数。 h_menu21=uimenu(h_menu2,label,Red,callback,set(h_fig,color,red) %创建Color的子菜单Red将图形背景为红色 h_menu22=uimenu(h_menu2,label,Blue,callback,set(h_fig,color,blue) %创建Color的子菜单Blue将图形背景为蓝色四、控件1. 常用控件常用控件控控件件的的功功能能表表控控件件名名PropertyName功功能能按钮PushButton最常用的控件,用于响应用户的鼠标单击,

31、按钮上有说明文字说明其作用。切换按钮ToggleButton当单击时会凹凸状态切换。单选按钮RadioButton当单击时会用黑白点切换,总是成组出现,多个单选按钮互斥,一组中只有一个被选中。复选框CheckBox当单击时会用切换,有选中、不选中和不确定等状态,总是成组出现,多个复选框可同时选用。文本框EditText凹形方框,可随意输入和编辑单行和多行文字,并显示出来。静态文本框StaticText用于显示文字信息,但不接受输入。滚动条Slider可以用图示的方式显示在一个范围内数值的大概值范围,用户可以移动滚动条改变数值。框架Frame将一组控件围在框架中,用于装饰界面。列表框ListBox显示下拉文字列表,用户可以从列表中选择一项和多项。弹出式菜单PopupMenu相当于文本框和列表框的组合,用户可以从下拉列表中选择。坐标轴Axes用于绘制坐标轴。2. 控件的创建(1) 在可视化界面环境中创建控件(2) 用uicontrol命令创建控件语法:语法: h_control=uicontrol(h_Parent,PropertyName, ProperValue,)五、GUI应用举例【例例】使用控件设计用户界面,根据阻尼系数绘制二阶系统的时域曲线。功能:在图形用户界面中,通过弹出式菜单选择二阶系统的阻尼系数,然后单击不同按钮在坐标轴中绘制不同阻尼系数不同颜色的时域曲线。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(#MATLAB三维图形绘制课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|