《讲Matlab高级图形处理功能.ppt》由会员分享,可在线阅读,更多相关《讲Matlab高级图形处理功能.ppt(97页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、参考文献:MATLAB程序设计教程 李海涛,邓樱 编著高等教育出版社,2002一、一、Matlab句柄绘图句柄绘图 Matlab语言的句柄绘图可以对图形各基本对象进行语言的句柄绘图可以对图形各基本对象进行更更为细腻的修饰为细腻的修饰,可以,可以产生更为复杂的图形产生更为复杂的图形,而且为动态图,而且为动态图形的制作奠定了基础。形的制作奠定了基础。高层绘图与底层绘图的区别高层绘图与底层绘图的区别高层绘图函数高层绘图函数是是对整个图形进行操作对整个图形进行操作的,图形每一部的,图形每一部分的属性都是按缺省方式设置的,充分体现了分的属性都是按缺省方式设置的,充分体现了Matlab语语言的言的实用性实
2、用性。底层绘图函数底层绘图函数可以定制图形,可以定制图形,对图形的每一部分进行对图形的每一部分进行控制控制,用户可以用来开发用户界面以及各专业的专用图形,用户可以用来开发用户界面以及各专业的专用图形,充分体现了充分体现了Matlab语言的语言的开发性开发性。(一)(一)句柄图形句柄图形句柄图形:句柄图形:利用底层绘图函数利用底层绘图函数,通过对通过对对象属性对象属性的设置与操的设置与操作实现绘图作实现绘图。u 句柄图形允许你定制图形的许多特性,无论是对图形做句柄图形允许你定制图形的许多特性,无论是对图形做一点小改动一点小改动,还是影响所有图形输出的,还是影响所有图形输出的整体改动整体改动。句柄
3、图形的功能:句柄图形的功能:句柄图形中所有图形操作都是针对图形对象而言的。句柄图形中所有图形操作都是针对图形对象而言的。句柄图形充分体现了面向对象的程序设计。句柄图形充分体现了面向对象的程序设计。u 句柄图形可以随意改变句柄图形可以随意改变Matlab生成图形的方式。生成图形的方式。句柄图形的特性高层绘图函数是无法实现的。句柄图形的特性高层绘图函数是无法实现的。(二)图形对象和句柄(二)图形对象和句柄可以确定图形的可以确定图形的整体或部分属性整体或部分属性的的各层界面各层界面。1.图形对象图形对象u 由图形创建函数产生的每一个对象都是图形对象。由图形创建函数产生的每一个对象都是图形对象。Mat
4、lab的图形对象包括计算机屏幕、图形窗口、坐标轴、的图形对象包括计算机屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、光源、区用户菜单、用户控件、曲线、曲面、文字、图像、光源、区域块和方框等。域块和方框等。系统将每一个对象系统将每一个对象按父对象和子对象组成的按父对象和子对象组成的树树型结构型结构组织起来组织起来。u 计算机屏幕是根对象,并且是所有其他对象的父对象计算机屏幕是根对象,并且是所有其他对象的父对象。图形窗口是根对象的子对象,坐标轴和用户界面对象是图形图形窗口是根对象的子对象,坐标轴和用户界面对象是图形窗口的子对象,线条、文本、曲面、块和图像对象是坐标轴窗口的子对
5、象,线条、文本、曲面、块和图像对象是坐标轴对象的子对象。对象的子对象。u 图形对象是图形系统中最基本、最底层的单元图形对象是图形系统中最基本、最底层的单元,是一组,是一组紧密相关、形成惟一整体的子对象的集合,并且子对象可以紧密相关、形成惟一整体的子对象的集合,并且子对象可以被单独地操作。被单独地操作。父对象父对象子对象子对象 图形对象之间的关系为父代与子代的关系图形对象之间的关系为父代与子代的关系x=0:2*pi/180:2*pi;y1=sin(2*x);y2=cos(2*x);plot(x,y1,x,y2)例例1窗口对象窗口对象线线对对象象轴对象轴对象2.图形对象的类型图形对象的类型 在层次
6、的最顶层是根对象,相当于在层次的最顶层是根对象,相当于计算机屏幕计算机屏幕,根对象,根对象只有一个,根对象不能被建立,但可以设置根属性以控制图只有一个,根对象不能被建立,但可以设置根属性以控制图形的显示。形的显示。独立于根屏幕的显示图形窗口,是独立于根屏幕的显示图形窗口,是根对象的子对象根对象的子对象,而,而所有其他图形对象都是图形窗口的子孙。所有的绘图函数所有其他图形对象都是图形窗口的子孙。所有的绘图函数(如(如plot 和和 surf 等)都会自动建立一个图形窗口。等)都会自动建立一个图形窗口。轴对象在图形窗口中定义一个区域,并确定该区域中子轴对象在图形窗口中定义一个区域,并确定该区域中子
7、对象的方向,轴是对象的方向,轴是图形窗口的子对象图形窗口的子对象,又是图象、灯光、线、,又是图象、灯光、线、块、表面和文字的父对象。块、表面和文字的父对象。(1)根屏幕)根屏幕(2)图形窗口)图形窗口(3)轴轴 下拉菜单,下拉菜单,图形窗口的子对象图形窗口的子对象,当用户选择一个独立,当用户选择一个独立的菜单项时执行回调程序。的菜单项时执行回调程序。图形窗口的子对象图形窗口的子对象,用于接口控制的按钮、列表框、,用于接口控制的按钮、列表框、滑条等,可以联合使用构成控制面板和对话框。滑条等,可以联合使用构成控制面板和对话框。(4)控件)控件(5)菜单)菜单(6)对象菜单)对象菜单 图形窗口的子对
8、象图形窗口的子对象,用鼠标右键点击某一个图形对象,用鼠标右键点击某一个图形对象时弹出对象菜单,它必须与某一个图形对象联合使用。时弹出对象菜单,它必须与某一个图形对象联合使用。(7)图象)图象 由数据矩阵和色图矩阵组成的图象,由数据矩阵和色图矩阵组成的图象,有三种:有三种:索引图、索引图、强度图、真彩色图强度图、真彩色图。灯光对象定义光源。灯光对象定义光源。表面对象是矩阵数据的三维表现。表面对象是矩阵数据的三维表现。(8)灯光)灯光(9)线)线线对象是大多数二维和三维绘图的基础。线对象是大多数二维和三维绘图的基础。(10)块)块块对象是带有边界、被填充的多边形。块对象是带有边界、被填充的多边形。
9、(11)矩形)矩形矩形对象是二维填充区域,形状可以从矩形到椭圆。矩形对象是二维填充区域,形状可以从矩形到椭圆。(12)表面)表面(13)文本)文本文本对象是字符串。文本对象是字符串。面对象面对象轴对象轴对象像对象像对象块对象块对象线对象线对象文字对象文字对象例例23.句柄(句柄(handle)在在Matlab的图形系统中,的图形系统中,所有的图形操作都是针对图所有的图形操作都是针对图形对象而言的形对象而言的。系统在创建每一个图形对象时,都为该对象。系统在创建每一个图形对象时,都为该对象分配惟一的一个数值,称为图形对象句柄。因此分配惟一的一个数值,称为图形对象句柄。因此句柄就是图句柄就是图形对象
10、的惟一标识符(代码)形对象的惟一标识符(代码),标识代码含有图形对象的各,标识代码含有图形对象的各种必要的属性信息,不同对象的句柄是不同的。种必要的属性信息,不同对象的句柄是不同的。图形对象的句柄是图形对象的句柄是Matlab显示图形数据和建立图形用显示图形数据和建立图形用户接口的基础。户接口的基础。句柄的值可以是一个数,也可以是一个矢量句柄的值可以是一个数,也可以是一个矢量,例如计算机屏幕作为根对象自动建立,其句柄值为例如计算机屏幕作为根对象自动建立,其句柄值为0;图形;图形窗口的句柄总是正整数,它标识了图形窗口的序号,并显示窗口的句柄总是正整数,它标识了图形窗口的序号,并显示在该窗口的标题
11、栏;其它图形对象的句柄为浮点数。而等高在该窗口的标题栏;其它图形对象的句柄为浮点数。而等高线函数(线函数(contour)创建的句柄则是一组值,每个值代表等)创建的句柄则是一组值,每个值代表等高线中的一条,也就是说每一条线就有一个句柄值高线中的一条,也就是说每一条线就有一个句柄值 所有能创建图形对象的所有能创建图形对象的Matlab函数都可给出所创建图函数都可给出所创建图形对象的句柄。形对象的句柄。例例4 h=line(1:6,1:6)h=0.0138例例3 h=figure(1)h=1变量h是句柄值浮点数 利用句柄既可以操纵一个已经存在的图形对象的属性,利用句柄既可以操纵一个已经存在的图形对
12、象的属性,也可以在建立图形对象时指定属性的值,特别是对指定图也可以在建立图形对象时指定属性的值,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的。一点是非常重要的。创建线对象的同时也建立了一个唯一的句柄创建1号窗口,返回句柄。返回值为窗口号数。例例 5 x=-pi:pi/20:pi;y=sin(x);z=cos(x);plot(x,y,r,x,z,g);Hl_lines=get(gca,Children);%获取正、余弦曲线句柄向量Hl_linesfor k=1:size(Hl_lines)if get(Hl_l
13、ines(k),Color)=0 1 0%0 1 0为绿颜色 Hl_green=Hl_lines(k)%返回绿色线条句柄 endend 利用句柄操作的有关函数,用户可以查找、访问图形利用句柄操作的有关函数,用户可以查找、访问图形对象,以达到定制对象属性,改变对象显示效果的目的。对象,以达到定制对象属性,改变对象显示效果的目的。H1_green=155.00464.图形对象的属性图形对象的属性图形对象是由属性来描述的图形对象是由属性来描述的 所有图形对象都具有控制对象显示的属性。这些属性既所有图形对象都具有控制对象显示的属性。这些属性既包括对象的一般信息,如对象类型、对象的父对象及子对象包括对象
14、的一般信息,如对象类型、对象的父对象及子对象等,也包括对象的一些特定信息,如坐标等,也包括对象的一些特定信息,如坐标轴轴对象的刻度等对象的刻度等 Matlab给每种对象的每一个属性规定了一个名字,称为给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。属性名,而属性名的取值称为属性值。用户可以获取、设置对象属性,以达到控制对象的目的。用户可以获取、设置对象属性,以达到控制对象的目的。当创建一个对象时,系统用一组默认属性值定制对象,用户当创建一个对象时,系统用一组默认属性值定制对象,用户可可通过通过get命令命令获取这些属性值,同时也可通过获取这些属性值,同时也可通过se
15、t命令命令重新重新设置对象属性设置对象属性。图形图形对象常用的公共属性:对象常用的公共属性:Children属性、属性、Parent属性、属性、Tag属性、属性、Type属性、属性、UserData属性、属性、Visible属性、属性、ButtonDownFcn属性、属性、CreateFcn属属性、性、DeleteFcn属性。属性。例例6 figure 大小位置 1 1 640 480 颜色 0 0 0 缺省 line a.x,y 数据;b.线的颜色 c.线型;d.线宽 图形图形对象的公共属性对象的公共属性5.创建图形对象的底层函数创建图形对象的底层函数figure创建创建新的图形窗口的函数新
16、的图形窗口的函数u h=figure(PropertyName1,PropertyValue1,PropertyName2,PropertyValue2,)功能:功能:建立图形窗口并设置指定属性的属性值,将句柄值建立图形窗口并设置指定属性的属性值,将句柄值赋给句柄变量赋给句柄变量h。其中。其中PropertyName,PropertyValue(即属(即属性名,属性值)构成属性二元对,该属性二元对还可以用性名,属性值)构成属性二元对,该属性二元对还可以用结构数组表示。结构数组表示。u figure 或 h=figure功能:功能:按默认的属性值建立图形窗口。按默认的属性值建立图形窗口。u cl
17、ose(h)功能:功能:关闭句柄为关闭句柄为h的图形窗口。的图形窗口。u close all 功能:功能:关闭所有的图形窗口。关闭所有的图形窗口。注意注意clf命令是清除当前图形窗口的内容,但不关闭窗口命令是清除当前图形窗口的内容,但不关闭窗口 Matlab为每个图形窗口提供了很多属性。这些属性为每个图形窗口提供了很多属性。这些属性及其取值控制着图形窗口对象。除公共属性外,其他常及其取值控制着图形窗口对象。除公共属性外,其他常用属性如下:用属性如下:MenuBar属性、属性、Name属性、属性、NumberTitle属性、属性、Resize属性、属性、Position属性、属性、Units属性
18、、属性、Color属属性、性、Pointer属性、属性、KeyPressFcn(键盘键按下响应键盘键按下响应)、WindowButtonDownFcn(鼠标键按下响应鼠标键按下响应)、WindowButtonMotionFcn(鼠标移动响应鼠标移动响应)及及WindowButtonUpFcn(鼠标键释放响应鼠标键释放响应)等。等。uu h=h=axes(axes(propertyproperty,)axes axes 创建创建坐标坐标轴对象轴对象 定义轴对象的位置与大小定义轴对象的位置与大小 left,bottom width,height功能:功能:用指定的属性在当前图形窗口创建坐标轴,并将
19、其用指定的属性在当前图形窗口创建坐标轴,并将其句柄值赋给句柄变量句柄值赋给句柄变量h。其中其中 property property=PropertyName1,PropertyValue1,PropertyName2,PropertyValue2,u axes 或或 h=axes功能:功能:按默认的属性值在当前图形窗口创建坐标轴。按默认的属性值在当前图形窗口创建坐标轴。用用axes 函数建立坐标轴之后,还可以调用函数建立坐标轴之后,还可以调用axes 函数将函数将之设定为当前坐标轴,且坐标轴所在的图形窗口自动成为当之设定为当前坐标轴,且坐标轴所在的图形窗口自动成为当前图形窗口:前图形窗口:ax
20、es(坐标轴句柄坐标轴句柄)Matlab为每个坐标轴对象提供了很多属性。除公共属为每个坐标轴对象提供了很多属性。除公共属性外,其他常用属性如下:性外,其他常用属性如下:Box属性、属性、GridLineStyle属性、属性、Position属性、属性、Units属性、属性、Title属性等。属性等。uicontroluicontrol图形界面控制图形界面控制调用格式:调用格式:h=h=uicontrol(uicontrol(propertyproperty)uimenuuimenu创建用户界面菜单创建用户界面菜单调用格式:调用格式:h=uimenu(h=uimenu(propertyprope
21、rty)property/value确定控制类型确定控制类型property/value 确定菜单形式确定菜单形式line 创建线对象创建线对象 h=line(x,y,z,Property)三维画线三维画线二维画线二维画线功能:功能:绘制曲线,并将句柄值赋给句柄变量绘制曲线,并将句柄值赋给句柄变量h,其中,其中x,y,z的的含义与高层绘图函数含义与高层绘图函数plot和和plot3等一样。等一样。每个曲线对象也具有很多属性。除公共属性外,其他每个曲线对象也具有很多属性。除公共属性外,其他常用属性如下:常用属性如下:Color属性、属性、LineStyle属性、属性、LineWidth属属性、性
22、、Marker属性、属性、MarkerSize属性等。属性等。surfacesurface 创建面对象创建面对象 h=surface(h=surface(x,y,z,c x,y,z,c,Property)功能:功能:建立句柄值为建立句柄值为h的曲面对象。其中的曲面对象。其中x,y,z为三维曲面坐为三维曲面坐标,标,c为颜色矩阵为颜色矩阵。每个曲面对象也具有很多属性。除公共属性外,其他每个曲面对象也具有很多属性。除公共属性外,其他常用属性如下:常用属性如下:EdgeColor属性、属性、FaceColor属性、属性、LineStyle属性、属性、LineWidth属性、属性、Marker属性、属
23、性、MarkerSize属性等。属性等。text 标注文字标注文字 h=text(h=text(x,y,z,string x,y,z,string,Property)标注字符串(标注字符串(说明文字说明文字)确定标注位置确定标注位置功能:功能:在指定位置和以指定的属性值添加文字说明在指定位置和以指定的属性值添加文字说明,并保存,并保存句柄值为句柄值为 h。说明文字中除使用标准的说明文字中除使用标准的 ASCII 字符外,还可字符外,还可使用使用 LaTeX 格式的控制字符格式的控制字符。除公共属性外,文字对象的其他常用属性如下:除公共属性外,文字对象的其他常用属性如下:Color属性、属性、S
24、tring属性、属性、Interpreter属性、属性、FontSize属性、属性、Rotation属性。属性。patch 创建块对象创建块对象 h=patch(h=patch(x,y,z,cx,y,z,c)image 显示图象显示图象h=image(h=image(x x)每个底层函数只能创建一个图形对象,并将它们置于每个底层函数只能创建一个图形对象,并将它们置于适当的父辈对象中。适当的父辈对象中。x,y,z定义多边形,定义多边形,c确定填充颜色。确定填充颜色。x为图像矩阵为图像矩阵(三)对象句柄的获取方法(三)对象句柄的获取方法功能:功能:获取获取h的的子对象子对象子对象子对象的句柄值,并
25、赋给的句柄值,并赋给h_ ch。句柄值的获取方法:句柄值的获取方法:1.追溯法获取句柄追溯法获取句柄h_pa=get(h,parent)功能:功能:获取获取h的的父对象父对象父对象父对象的句柄值,并赋给的句柄值,并赋给h_pa。h_ch=get(h,children)2.当前对象句柄的获取当前对象句柄的获取功能:功能:返回返回当前图形窗口当前图形窗口当前图形窗口当前图形窗口的句柄值,并赋给的句柄值,并赋给h_fig功能:功能:返回当前图形的返回当前图形的当前坐标轴当前坐标轴当前坐标轴当前坐标轴的句柄值,赋给的句柄值,赋给h_ax 功能:功能:获取获取当前对象当前对象当前对象当前对象的句柄值,并
26、赋给的句柄值,并赋给h_obj。功能:功能:返回句柄值为返回句柄值为h_fig的图形中的图形中当前对象当前对象当前对象当前对象的句柄值。的句柄值。h_fig=gcfh_ax=gcah_obj=gcoh_obj=gco(h_fig)可以为对象设置句柄名称,如果没有设置句柄,可用可以为对象设置句柄名称,如果没有设置句柄,可用gcf 命令获得命令获得当前图形窗口当前图形窗口的句柄,使用的句柄,使用gca命令获得命令获得当前当前坐标轴坐标轴的句柄,使用的句柄,使用gco命令获得命令获得当前对象当前对象的句柄。的句柄。3.根据对象特性获取句柄根据对象特性获取句柄findobj 函数是根据对象特性获取句柄
27、的一种重要方法。函数是根据对象特性获取句柄的一种重要方法。功能:功能:获取根对象和所有子对象的句柄值,并赋给获取根对象和所有子对象的句柄值,并赋给h。功能功能:获取句柄为获取句柄为ObjectHandles对象中列出的对象和它对象中列出的对象和它们的子对象的句柄值,并赋给们的子对象的句柄值,并赋给h。h=findobjh=findobj(ObjectHandles)功能功能:获取根和根以下以获取根和根以下以属性二元对(属性二元对(PropertyName,PropertyValue)指定属性值的对象的句柄值)指定属性值的对象的句柄值,并赋给,并赋给h。调用格式如下:调用格式如下:h=findo
28、bj(h-ori,PropertyName,PropertyValue)h=findobj(PropertyName,PropertyValue,)(四)对象属性的获取和设置(四)对象属性的获取和设置 句柄图形建立后,应用函数句柄图形建立后,应用函数 get 和和 set 获取获取和和设置设置指定句指定句柄对象的柄对象的属性值属性值。get(h_obj)功能功能:获取句柄对象所有属性的当前值。获取句柄对象所有属性的当前值。get(h_obj,PropertyName)set(h_obj)功能功能:显示显示句柄对象所有属性和属性值。句柄对象所有属性和属性值。功能功能:获取句柄对象获取句柄对象h_
29、obj的属性名为的属性名为PropertyName的当前值的当前值get(h_obj,DefaultObjectTypePropertyName)功能功能:获取句柄对象属性的默认值。获取句柄对象属性的默认值。set(h_obj,PropertyStructure)功能功能:用结构数组设置句柄对象指定属性的属性值。用结构数组设置句柄对象指定属性的属性值。功能功能:设置属性的用户定义默认值。设置属性的用户定义默认值。功能功能:删除属性的用户定义默认值。删除属性的用户定义默认值。set(h_obj,DefaultObjectTypePropertyName,PropertyValue)set(h_o
30、bj,DefaultObjectTypePropertyName,Remove)功能功能:设置句柄对象指定属性名的属性值。设置句柄对象指定属性名的属性值。set(h_obj,PropertyName,PropertyValue)h1=line(0:10,0:10)h1=9.7656e-004get(h1)例例7 创建一个线对象并返回创建一个线对象并返回其句柄值。其句柄值。h1为句柄的代码值为句柄的代码值u查阅线对象的属性名和属性值查阅线对象的属性名和属性值 Color=0 0 1 EraseMode=normal LineStyle=-LineWidth=0.5 Marker=none Mar
31、kerSize=6 MarkerEdgeColor=auto MarkerFaceColor=none XData=(1 by 11)double array YData=(1 by 11)double array ZData=BeingDeleted=off ButtonDownFcn=Children=Clipping=on CreateFcn=DeleteFcn=BusyAction=queue HandleVisibility=on HitTest=on Interruptible=on Parent=154.001 Selected=off SelectionHighlight=on
32、 Tag=Type=line UIContextMenu=UserData=Visible=onu可查色序可查色序u根据轴是线对象的父对象,可查轴的句柄根据轴是线对象的父对象,可查轴的句柄 ActivePositionProperty=outerposition ALim=0 1 ALimMode=auto AmbientLightColor=1 1 1 Box=off CameraPosition=5 5 17.3205ans=0 0 1.0000 0 0.5000 0 1.0000 0 0 0 0.7500 0.7500 0.7500 0 0.7500 0.7500 0.7500 0 0.
33、2500 0.2500 0.2500get(gca)get(gca,colororder)u设置线条和窗口的颜色设置线条和窗口的颜色set(h1,color,1 0 0)set(h1,color,1 0.5 0)set(gcf,color,0.5 0.5 0.5)set(gcf,color,0.5 0.6 0.8)x=0:2*pi/180:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2,x,zeros(size(x),k:)例例8 作正弦、余弦曲线,将正弦曲线改为虚线,将余弦作正弦、余弦曲线,将正弦曲线改为虚线,将余弦曲线幅度减为曲线幅度减为1/2高度,如何用句
34、柄实现。高度,如何用句柄实现。u首先查询各对象的属性首先查询各对象的属性get(gcf)h=get(gcf,children)h=60.0004hh=get(gca,children)hh=70.0004 69.0004 68.0004u修改属性修改属性y11=get(hh(2),ydata);y22=y11/2;set(hh(2),ydata,y22)set(hh(3),linestyle,:)对象的属性操作对象的属性操作 控制一个图形对象是通过句柄实现的,具体是通过句柄控制一个图形对象是通过句柄实现的,具体是通过句柄操作函数操作函数 get,set 将某对象句柄属性作将某对象句柄属性作设置
35、设置与与修改修改。(1)对象属性的直接操作)对象属性的直接操作 对象属性的直接操作是通过当前句柄来实现的,所以对象属性的直接操作是通过当前句柄来实现的,所以首首先要获得先要获得当前句柄值以及对象的属性,当前句柄值以及对象的属性,然后再查询或修改然后再查询或修改get(h)get(h,propertyname)set(h)set(h,propertyname,value)set(h,propertyname,newproperty)color,r linestyle,:figurecolor,m(2)对象属性的继承操作)对象属性的继承操作 对象属性的继承操作是通过父对象,设置缺省对象属性对象属性
36、的继承操作是通过父对象,设置缺省对象属性来实现的。父对象句柄属性中设置缺省值后,所有子对象均来实现的。父对象句柄属性中设置缺省值后,所有子对象均可以继承该属性的缺省值。可以继承该属性的缺省值。属性缺省值的描述结构为:属性缺省值的描述结构为:Default+对象名称对象名称+对象属性对象属性如:如:DefaultFigureColor 图形窗口的颜色图形窗口的颜色 DefaultAxesAspaceRatio 轴的视图比率轴的视图比率 DefaultLineLineWide 线的宽度线的宽度 DefaultLineColor 线的颜色线的颜色缺省值的获得与设置也是由缺省值的获得与设置也是由get
37、,set函数实现的。函数实现的。例例9 set(gca,DefaultTextColor,1 0 0)gtext(正弦正弦)gtext(余弦余弦)在轴对象上设置字对象的颜色,在轴对象上设置字对象的颜色,缺省值为红色,缺省值为红色,继承继承该缺省值该缺省值在图上添加红色的文字注释。在图上添加红色的文字注释。例例10 在图上添加文字注释,颜色为红色。在图上添加文字注释,颜色为红色。get(0,DefaultFigureColor)获得图形窗口颜色的缺省值获得图形窗口颜色的缺省值 set(h,DefaultLineColor,r)设置线的颜色为红色设置线的颜色为红色例例11 在轴对象上(父对象)设置
38、线的颜色缺省值为红色。在轴对象上(父对象)设置线的颜色缺省值为红色。x=0:2*pi/180:2*pi;y=sin(2*x);set(gca,DefaultLineColor,1 0 0);h=line(x,y)h=68.0001set(h,color,default)例例12 将所有新图形窗口的颜色由缺省值黑色将所有新图形窗口的颜色由缺省值黑色设置为适中的灰色设置为适中的灰色x=0:2*pi/180:2*pi;y=sin(2*x);h=line(x,y)set(0,DefaultFigureColor,0.5 0.5 0.5)set(h,color,m,linewidth,2,linesty
39、le,*)Warning:Setting marker type based on LineStyle property Marker and LineStyle have been made separate properties Use Marker property to remove this warning.set(0,defaultfigurecolor,b)set(0,defaultaxescolor,g)h=line(x,y)set(h,color,r)set(gca,xcolor,w)set(gca,ycolor,w)h=surf(peaks(30)set(0,default
40、surfaceedgecolor,w)set(h,edgecolor,default)例例13 自定义坐标轴的显示刻度。自定义坐标轴的显示刻度。执行的结果执行的结果轴的刻度值轴的刻度值和间隔都是和间隔都是自动定义的自动定义的数值轴。数值轴。(a)绘制正弦曲线。绘制正弦曲线。t=-pi:pi/20:pi;y=sin(t);plot(t,y)t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,xtick,-pi:pi/2:pi,xticklabel,-pi,-pi/2,0,pi/2,pi)(b)可以通过)可以通过set函数对坐标轴对象进行定义,获得在函数对坐标轴对象进
41、行定义,获得在x轴轴上设置角度刻度的效果上设置角度刻度的效果:用用xtick属性设置属性设置x轴刻度的轴刻度的位置,用位置,用xticklabel指定刻度的值。指定刻度的值。t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,xtick,-pi:pi/2:pi,xticklabel,-pi,-pi/2,0,pi/2,pi)axis(-pi,pi,-1,1)grid(c)如在定义轴范围同时绘制网格线会使图形更加清楚。如在定义轴范围同时绘制网格线会使图形更加清楚。t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,Xticklabel,0
42、;5;10;20)axis(-pi,pi,-1,1)grid(d)坐标轴的刻度的属性值还可写成坐标轴的刻度的属性值还可写成:set(gca,XtickLabel,-pi|-pi/2|0|pi/2|pi)t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,XtickLabel,-pi|-pi/2|0|pi/2|pi)axis(-pi,pi,-1,1)gridu如果是数字也可写成:如果是数字也可写成:set(gca,Xticklabel,0;5;10;20)subplot(2,2,1)h=surf(sphere(30)subplot(2,2,2)h=surf(sphe
43、re(30)set(h,EdgeColor,0.8,0.8,0.8)%将网格线设置为浅灰色subplot(2,2,3)h=surf(sphere(30)set(h,EdgeColor,g)%将网格线设置为绿色subplot(2,2,4)h=surf(sphere(30)set(h,EdgeColor,r)%将网格线设置为红色例例14 改变三维网格图中改变三维网格图中网格线的颜色网格线的颜色。建立句柄为建立句柄为h的三维曲面,缺省状态下曲面的三维曲面,缺省状态下曲面的网格线为黑色的网格线为黑色。pcolor(peaks);shading interpgrid on set(gca,Layer,t
44、op)%将网线设置为红色例例15 在图形的上面绘制坐标格。在图形的上面绘制坐标格。坐标格隐藏在图形后面坐标格隐藏在图形后面 将坐标格绘制在图形的上面将坐标格绘制在图形的上面t=0:pi/20:2*pi;plot(t,cos(t)hold onset(gcf,WindowButtonDownFcn,.p=get(gca,CurrentPoint);,.px=p(1,1);py=cos(px);.plot(t,cos(t);.plot(px,py,*r);)axis(axis)例例16 用鼠标确定曲线上点的位置。用鼠标确定曲线上点的位置。(3)其它操作)其它操作default 由父对象继承由父对象
45、继承factory 厂家设定缺省值厂家设定缺省值remove 清除设定缺省值清除设定缺省值delete(gcf)删除当前窗口的属性删除当前窗口的属性set(gca,defaultlinecolor,remove)set(h,color,factory)例例17(一)视图(一)视图二、视图与光照二、视图与光照1.视图方向视图方向控制视图和旋转的函数:控制视图和旋转的函数:view,viewmtx,rotate,rotate3d 视点位置可由方位角和仰角表示。方位角又称旋转视点位置可由方位角和仰角表示。方位角又称旋转角,为视点位置在角,为视点位置在 xy 平面上的投影平面上的投影与与 y 轴的负轴
46、形成轴的负轴形成的角度的角度,正值表示逆时针,负值表示顺时针。仰角又称,正值表示逆时针,负值表示顺时针。仰角又称视角,为视角,为 xy 平面的平面的上仰或下俯角上仰或下俯角,正值表示视点在,正值表示视点在 xy平面上方,负值表示视点在平面上方,负值表示视点在 xy 平面下方。平面下方。view(vx,vy,vz)功能:功能:返回视点的直角坐标。返回视点的直角坐标。二维图形二维图形:az=0o,el=90o缺省状态缺省状态:三维图形三维图形:az=-37.5o,el=30o view(2):设置为二维默认视图设置为二维默认视图view(3):设置为三维默认视图设置为三维默认视图view(az,e
47、l)功能:功能:通过方位角、仰角设置视点。通过方位角、仰角设置视点。az(azimuth)方位角方位角,为从,为从 y轴的负轴开始绕轴的负轴开始绕 z 轴旋转的角度,逆时针为正轴旋转的角度,逆时针为正;el(elevation)仰角仰角,从,从xy平面向平面向 z 轴旋转的角度,轴旋转的角度,朝向朝向z轴的旋转为正。轴的旋转为正。视点设置参数示意图视点设置参数示意图例例18 观察不同视角的波峰图形。观察不同视角的波峰图形。p=peaks;%系统提供的多峰函数subplot(2,2,1);mesh(peaks,p);view(-37.5,30);%指定子图1的视点title(az=-37.5,e
48、l=30)subplot(2,2,2);mesh(peaks,p);view(-15,60);%指定子图2的视点title(az=-15,el=60)subplot(2,2,3);mesh(peaks,p);view(-90,0);%指定子图3的视点title(az=-90,el=0)subplot(2,2,4);mesh(peaks,p);view(-7,-10);%指定子图4的视点title(az=-7,el=-10)通过系统提通过系统提供的多峰函供的多峰函数数peaks的绘的绘制例子,可制例子,可进一步说明进一步说明视点对图形视点对图形的影响,以的影响,以及及view(az,el)函数的
49、使用函数的使用subplot(2,2,1)peaks(50)subplot(2,2,2)peaks(50)view(90,0)subplot(2,2,3)peaks(50)view(30,45)subplot(2,2,4)peaks(50)view(2)%二维平面图例例19 比较不同视图的视觉效果。比较不同视图的视觉效果。2.图形旋转图形旋转rotate3d 三维视图变三维视图变化命令,可以化命令,可以用鼠标控用鼠标控制视图的变化制视图的变化。peaks(50)rotate3d例例20(二)光照(二)光照1.创建光源对象创建光源对象 light(PropertyName,PropertyVal
50、ue,)不使用此函数时,图形采用各处相等的漫射光,采用后不使用此函数时,图形采用各处相等的漫射光,采用后产生确定属性的光源,缺省设置为无穷远处的白色光源穿过产生确定属性的光源,缺省设置为无穷远处的白色光源穿过1,0,1射向坐标原点。射向坐标原点。功能:功能:在当前坐标轴对象中创建光源对象,在当前坐标轴对象中创建光源对象,PropertyName主要包括主要包括Color、Position 和和 Style 等属性,等属性,Color 的值用的值用ColorSpec确定,缺省值为白色;确定,缺省值为白色;Position由由x y z坐标确定,缺省值为坐标确定,缺省值为1 0 1;Style的值