第四章 MATLAB课件(2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

部函数(Build—in Functions)创建。

figure创建图形窗口
调用格式: h=figure(n) n为窗口序号
例:创建1号窗口,返回句柄。 h=figure(1) h= 1 返回值为窗口号数

axes 创建轴对象
h=axes( ‘position’, [left, bottom, width, height] ) 定义轴对象的位置与大小 line 创建线对象 h=line( x, y, z) 如果不指定z, 则在x, y平面上 划线。
界面控制(Uicontrol):图形窗口的子代,独立于轴。创建用户界面 控制对象,使得用户可采用鼠标在图形上作功能选择,并返回句柄。 界面菜单(Uimenu): 图形窗口的子代,独立于轴。创建用户界面菜 单对象,允许用户在图形窗口的上方建立菜单。
窗口对象
1 0.8 0.6 0.4 0.2 0
轴对象
>>lin2=line(sin(20*x),cos(20*x),’LineStyle’,’:’,’Color’,’b’) %用0.5号细虚蓝线画弦。此线句柄存放于lin2。 fig = 1 ax = 0.0013 lin1 = 157.0011 lin2 = 157.0012
例:创建三维网线图时设置对象品性 >> fig_2=figure; >> ax=axes('Box','on','View',[-37.5,30],'Nextplot','replace'); >> [x,y,z]=peaks(25); >> surfh=surface(x,y,z,'Facecolor','w','LineWidth',2,'Edgecolor','k'); 说明:由于在设置中 “Facecolor”设为“w”,这实 际上是高层指令mesh所画 的网线图。此图的网线比 较租。
a=[13.0000,8.7700,8.7700,4.7700,4.2700,4.6700,4.1700,2.9700,1.7700,1.0700,1.67 00,1.6700,2.5700,4.6700,3.9700,14.7000] %河底高程 x=[0,80,190,245,290,330,400,460,535,580,620,665,730,810,860,890] %起点距 Hf_1=figure('NumberTitle','off','name','断面面积计算','Position',[50,80,700,460]) %图形标题 plot(x,a) %绘断面图 set(gca,'Xdir','Normal','Ydir','Normal','Box','off'); s=input('请输入水位值:'); ss=s-a; sa=length(a) for i=1:sa; if ss(i)<0; sss(i)=0; else sss(i)=ss(i); end end
线 对 象
面对象 线对象
轴对象
像对象
No Image
文字对象
块对象
二、图形对象的句柄
1、图形对象句柄
MATLAB在创建每一个图形对象时,都为该对象分配唯 一的一个值,称其为图形对象句柄(Handle)。 句柄是图形对象的唯一标识符,不同对象的句柄不可能重 复和混淆。 计算机屏幕作为根对象由系统自动建立,其句柄值为0, 而图形窗口对象的句柄值为一正整数,并显示在该窗口的标 题栏,其他图形对象的句柄为浮点数。MATLAB提供了若 干个函数用于获取已有图形对象的句柄。


句柄图形的特性高层绘图函数是无法实现的。
在高层绘图中对图形对象的描述一般是缺省的或由高层绘图函数 自动设置的,因此对用户来说几乎是不透明的; 但句柄绘图中上述图形对象都是用户需要经常使用的,所以要作 到心中有数,用句柄设置图形对象的属性。

3、创建图形对象的底层函数

在MATLAB中,除根屏幕Root外、所有的对象都由与之同名的内
2、句柄属性的设置与修改
为了获得和改变句柄图形对象的属性只需要两个函数(get ,set)。 get: 获得句柄图形对象的属性和返回某些对象的句柄值 get函数的调用格式为: V=get (handle, ‘ Property Name’ ) %其中V是返回的属性值。 如果在调用get函数时省略属性名,则将返回句柄所有的属性值。 例如: » p=get(Hf_1, ‘position’ ) %返回具有句柄Hf_1图形窗口的位置向量。 » c=get(Hl_a, ‘color’ ) %返回具有句柄Hl_a对对象的属性
所有对象都有属性来定义它们的特征,正是通过设定这些属性
来修正图形显示的方式。尽管许多属性所有的对象都有,但与每一种 对象类型(比如坐标轴,线,曲面)相关的属性列表都是独一无二的。
对象属性可包括诸如对象的位置、颜色、类型、父对象、子对象及其
它内容。每一个不同对象都有和它相关的属性,可以改变这些属性而 不影响同类型的其他对象。和每一种对象类型(图形,坐标轴,线,


窗口n
子对象 线 面 字 块 像
图形对象之间的关系为父代与子代的关系
说明: 根(Root):图形对象的根,对应于计算机屏幕,根只有一个,其它 所有图形对象都是根的后代。 图形窗口(Figure): 根的子代,窗口的数目不限,所有图形窗口都 是根屏幕的子代,除根之外,其它对象则是窗的后代。 轴(Axes):在窗口内建立一个域.并对在此域内的子代定位。轴是 图形窗口的子代,是线、面、字、块、像的父辈。所有对象创建函数 和所有高层作图指令都能产生一个轴。轴也可以直接由Axes指令创建。 线(Line):轴的子代,线对象可由函数plot,plot3,contour, contour3创建。 面(Surface):轴的子代,是矩阵数据的三维空间表现。它由许多四 边形组成,四边形的顶点又由所给数据定位。面可以单色或插补色表

2、句柄图形的功能

句柄图形:利用底层绘图函数,通过对对象属性的设置(Handle Graphics)与操作实现绘图。


句柄图形中所有图形操作都是针对图形对象而言的。
句柄图形充分体现了面向对象的程序设计。

句柄图形可以随意改变matlab生成图形的方式。 句柄图形允许你定制图形的许多特性,无论是对图形做一点小改 动,还是影响所有图形输出的整体改动。
文本,曲面,补片和图象)相关的完整的属性列表在本章的后面给出。
对象属性包括属性名和与它们相联关的值。属性名是字符串,它 们通常按混合格式显示,每个词的开头字母大写,比如:’ LineStyle ‘ 。 但是,MATLAB识别一个属性时是不分大小写的。另外,只要用足够多 的字符来唯一地辨识一个属性名即可。例如,坐标轴对象中的位置属性 可以用 ‘ Position ‘ , ‘ position ‘ ,甚至是 ‘ pos ‘ 来调用。
>> get(lin1) Color = [1 0 0] EraseMode = normal LineStyle = LineWidth = [5] Marker = none MarkerSize = [6] MarkerEdgeColor = auto MarkerFaceColor = none XData = [ (1 by 49) double array] YData = [ (1 by 49) double array] ZData = []

patch 创建块对象 h=patch( x, y, z, c)
x, y, z定义多边形,c确定填充颜色。

surface 创建面对象
h=surface(x,y,z,c)
x,y,z三维曲面坐标,c颜色矩阵。

image 显示图象 h=image (x); x为图像矩阵 text 标注文字 h=text (x, y,’ string’)
一、图形对象和句柄
1. 2.
图形对象—— 图形系统中最基本、最底层的组元。包括计算机 屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、 文 字、图像、光源、区域块和方框等。系统将每一个对象按树型 结构 组织起来。
3.
4.
5.
图形对象的基本要素以根屏幕为先 导
根屏幕 父对象 窗口1 界面控制 窗口2 界面菜单

x, y指定字符串的标注位置。

uicontrol图形界面控制
调用格式: h=uicontrol(‘property’,value) property/value确定控制类型

uimenu创建用户界面菜单
调用格式: h=uimenu(‘property’,value) property/value 确定菜单形式。
现,也可以仅用点间连线表现,其位置决定于轴所建立的坐标系。
pcolor,mesh、surf类指令都能创建面。
字(Text):轴的子代,即为字符串,位置由轴坐标系决定。 块(Patch):轴的子代,是填色多边形,其位置决定于轴所建立的坐标系。 它可以用单色或插补色进行渲染。fill和fill3创建块对象。 像(Image):轴的子代,是矩阵元素直接映射到当前的色图上所得的结果。 像有自己的色图。像是—个二维图形,没有观察角的调整问题,其位置决 定于轴所建立的坐标系。像由函数image。
第四章 计算数据可视化
§4.1 §4.2 §4.3
二维图形 三维图形 图形色彩处理
§4.4
§4.5 §4.6
句柄图形技术
图像显示技术 动画制作
§4.4 句柄图形技术 ——matlab语言的句柄绘图可以 对图形各基本对象进行更为细腻 的修饰,可以产生更为复杂的图 形,而且为动态图形的制作奠定 了基础。
BeingDeleted = off ButtonDownFcn = Children = [] Clipping = on CreateFcn = DeleteFcn = BusyAction = queue HandleVisibility = on HitTest = on Interruptible = on Parent = [0.00134277] Selected = off SelectionHighlight = on Tag = Type = line UIContextMenu = [] UserData = [] Visible = on
高层绘图与底层绘图的区别

高层绘图函数——是对整个图形进行操 作的,图形每一部分的属性都是按缺省 方式设置的,充分体现了matlab语言的 实用性。
底层绘图函数——可以定制图形,对图 形的每一部分进行控制,用户可以用来 开发用户界面以及各专业的专用图形。 充分体现了matlab语言的开发性

例:河流断面面积计算程序
Q=trapz(x,sss); hold on y=[0:1:890]; aa=['水位',num2str(s),'米']; plot(y,s,'r-') title(['所求的断面面积为',num2str(Q),'平方米'],'FontSize',14,'color','red'), xlabel('起点距(米)') ylabel('水深(米)') gtext(aa) hold off
当建立一个对象时,它用一组缺省属性值,该值可以用两种方法来改 变。可以用{属性名,属性值}对来建立对象生成函数;或者在对象建立 后改变属性。前一种方法的例子是: » Hf_1=figure( ‘color’, ‘white’ ) 它用缺省的属性值建立一个新的图形窗口,只是背景颜色被设为白色 而不是缺省的黑色。 >>%如图所示二维图形时对象品性的设置指令示范 >>fig=figure(1); %创建1号图形窗,并将该窗句柄值存放于fig。 >>ax=axes(‘Box’,’on’,’ PlotBoxAspectRatio’,[1,1,1]) %创建封闭式的、高宽比为1的坐标轴,ax存轴的句柄值 >>lin1=line(sin(x),cos(x),’LineWidth’,5,’LineStyle’,’-’,’Color’,’r’) %用5号粗实红线画圆。此线句柄存放于lin1

每个底层函数只能创建一个图形对象,并将它们置于适当的父辈
对象中。
例如,1ine指令的运作将在当前袖上利用缺省特性数据画“线”。假 若,此指令运作前,‘· 轴”、“窗’不存在,则Matlab会自动创建 它们。 假若,此指令运作前,,‘轴”、“窗”已经存在;那么这些“线 ‘将被画在 已有的“轴上”,且不影响该轴上已有的其他对象(注意.这与高层 作 图指令不同)
相关文档
最新文档