《MATLAB绘图进阶句柄.ppt》由会员分享,可在线阅读,更多相关《MATLAB绘图进阶句柄.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、OUTLINE二、二、三三维维绘图的复习以及补充绘图的复习以及补充色彩处理色彩处理光源光源动画动画1视角改变视角改变仰角仰角:与与z=0平面所成的方向角平面所成的方向角方位角方位角:与与x=0平面的夹角平面的夹角缺省的三维视角方向方位角为缺省的三维视角方向方位角为-37.5度,仰度,仰角为角为30度度。缺省的二维视角方位角为缺省的二维视角方位角为0度,仰角为度,仰角为90度度函数函数view改变所有类型的二维和三维图形改变所有类型的二维和三维图形的图形视角。的图形视角。view(az,el)和和view(az,el)将视角改变到所指定的方位角将视角改变到所指定的方位角az和仰角和仰角el 2方
2、位角方位角 仰角仰角3视角修饰视角修饰(函数函数view(az,el)az-方位角;el-俯视角 省缺值为:az=-37.5;el=30例:观察不同视角的波峰图形例:观察不同视角的波峰图形z=peaks(40);subplot(2,2,1);mesh(z);subplot(2,2,2);mesh(z);view(-15,60);subplot(2,2,3);mesh(z);view(-90,0);subplot(2,2,4);mesh(z);view(-7,-10);45colormap(R,G,B)色图设定函数matlab 的颜色数据集合为红、绿、兰三颜色矩阵R,G,B,维数m3r,g,b在
3、0 1区间连续取值,理论上颜色种类可达无穷多种matlab使用三维向量表示一种颜色,常用颜色数据见下表/课本p177色彩处理色彩处理6 饱和色 0 0 0 黑色 0 0 1 兰色 0 1 0 绿色 0 1 1 浅兰 1 0 0 红色 1 0 1 粉红 1 1 0 黄色 1 1 1 白色 调和色0.5 0.5 05 灰色0.5 0 0 暗红色1 0.62 0.4 铜色0.49 1 0.8 浅绿0.49 1 0.83 宝石兰7颜色映像标准颜色映像hsv色彩饱和值(以红色开始和结束)hot从黑到红到黄到白cool青蓝和洋红的色度pink粉红的彩色度gray线性灰度bone带一点蓝色的灰度jethsv
4、的一种变形(以蓝色开始和结束)copper线性铜色度prim三棱镜。交替为红色、橘黄色、黄色、绿色和天蓝色flag交替为红色、白色、蓝色和黑色按缺省,各个颜按缺省,各个颜色映象产生一个色映象产生一个643的矩阵,指的矩阵,指定了定了64种颜色种颜色RGB的描述。这的描述。这些函数都接受一些函数都接受一个参量来指定所个参量来指定所产生矩阵的行数。产生矩阵的行数。如如hot(m)产生一产生一个个m3的矩阵,的矩阵,它包含的它包含的RGB颜颜色值的范围从黑色值的范围从黑经过红、橘红和经过红、橘红和黄,到白黄,到白 8颜色映像的应用colormap(MAP)色图设定函数,字符串三维行向量,单独的RGB
5、值矩阵:MAP为m3维色图矩阵直观显示:观察颜色映像矩阵元素Rgbplot()直接把颜色映像矩阵用RGB画出来Pcolor绘制伪彩色图:绘图所用色彩表示数据大小Colorbar(horiz/vert)增加水平或者垂直颜色标尺9peaks(30);shading interp;colormap(hot)10X,Y,Z=peaks(30);surfl(X,Y,Z)X,Y,Z=peaks(30);surfl(X,Y,Z)shading interp;colormap(cool);axis offshading interp;colormap(cool);axis off11peaks(30);col
6、ormap(hot);colorbar(horiz)figure(2);colormap(cool);12颜色映像的应用颜色映像的应用 cont.颜色映像的建立和修改,自定义m3维色图矩阵Brighten函数调整颜色映像亮暗 brighten(n)(0n=1)变亮 brighten(n)(-1=n0)变暗13图像显示图像显示Imread(filename,fmt)图像数据的读取Imwrite(A,filename,fmt)图像数据的输出Image(A)图像的显示14matlab句柄绘图句柄绘图matlab语言的句柄绘图可以对图语言的句柄绘图可以对图形各基本对象进行更为细腻的修饰,形各基本对象进
7、行更为细腻的修饰,可以产生更为复杂的图形,而且为可以产生更为复杂的图形,而且为动态图形的制作奠定了基础。动态图形的制作奠定了基础。15高层绘图与底层绘图的区别高层绘图与底层绘图的区别高层绘图函数高层绘图函数是对整个图形进行操是对整个图形进行操作的,图形每一部分的属性都是按缺省作的,图形每一部分的属性都是按缺省方式设置的,充分体现了方式设置的,充分体现了matlab语言的语言的实用性。实用性。底层绘图函数底层绘图函数可以定制图形,对图可以定制图形,对图形的每一部分进行控制,用户可以用来形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。开发用户界面以及各专业的专用图形。充分体现了
8、充分体现了matlab语言的开发性语言的开发性16什么是句柄图形什么是句柄图形句柄图形:利用底层绘图函数,通句柄图形:利用底层绘图函数,通过对过对对象属性对象属性的设置(的设置(Handle Handle GraphicsGraphics)与操作实现绘图。)与操作实现绘图。句柄图形中所有图形操作都是针对句柄图形中所有图形操作都是针对图形对象而言的。图形对象而言的。句柄图形充分体现了面向对象的程句柄图形充分体现了面向对象的程序设计。序设计。17句柄图形的功能v句柄图形可以随意改变matlab生成图形的方式。v句柄图形允许你定制图形的许多特性,无论是对图形做一点小改动,还是影响所有图形输出的整体改
9、动。v句柄图形的特性高层绘图函数是无法实现的18图形对象和句柄图形对象和句柄1.图形对象图形对象 图形系统中最基本、最图形系统中最基本、最底层的单元底层的单元 引例:引例:x=0:2*pi/180:2*pi;y1=sin(2*x);y2=cos(2*x);plot(x,y1,x,y2)19父对象子对象图形对象的基本要素以根屏幕为先导图形对象的基本要素以根屏幕为先导图形对象之间的关系为父代与子代的关系图形对象之间的关系为父代与子代的关系窗口1窗口n窗口2界面控制界面菜单轴线面字块像根屏幕20说明:说明:根根:图形对象的根,对应于计算机屏幕,根图形对象的根,对应于计算机屏幕,根只有一个,其它所有图
10、形对象都是根的后只有一个,其它所有图形对象都是根的后代。代。图形窗口图形窗口:根的子代,窗口的数目不限,所根的子代,窗口的数目不限,所有图形窗口都是根屏幕的子代,除根之外,有图形窗口都是根屏幕的子代,除根之外,其它对象则是窗的后代。其它对象则是窗的后代。界面控制界面控制:图形窗口的子代,创建用户界面图形窗口的子代,创建用户界面控制对象,使得用户可采用鼠标在图形上控制对象,使得用户可采用鼠标在图形上作功能选择,并返回句柄。作功能选择,并返回句柄。界面菜单界面菜单:图形窗口图形窗口的子代,创建用户界的子代,创建用户界面菜单对象面菜单对象 轴轴:图形窗口的子代,创建轴对象,并返回图形窗口的子代,创建
11、轴对象,并返回句柄,线面字块像的父辈句柄,线面字块像的父辈线线:轴的子代,创建线对象轴的子代,创建线对象面面:轴的子代,创建块对象轴的子代,创建块对象字字:轴的子代,创建字对象轴的子代,创建字对象块块:轴的子代,创建块对象轴的子代,创建块对象像像:轴的子代,创建图像对象轴的子代,创建图像对象22窗口对象线对象轴对象23什么是句柄?什么是句柄?句柄是图形对象的标识代码,标识代码含句柄是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息。有图形对象的各种必要的属性信息。各图形对象的句柄数据格式:各图形对象的句柄数据格式:根屏幕根屏幕 0 0 图形窗口图形窗口 整数,表示图形窗口数整数,表
12、示图形窗口数 其它对象其它对象 对应的符点数对应的符点数句柄(句柄(handle)handle)与句柄操作与句柄操作24 所有能创建图形对象的所有能创建图形对象的matlabmatlab函数都可函数都可给出所创建图形对象的句柄给出所创建图形对象的句柄例:创建例:创建1号窗口,返回句柄号窗口,返回句柄 h=figure(1)h=1 返回值为窗口号数返回值为窗口号数例:例:h=line(1:6,1:6)创建线对象的同时也创建线对象的同时也建立了一个唯一的句柄建立了一个唯一的句柄 变量变量h是句柄值是句柄值符点数符点数25句柄属性的设置与修改句柄属性的设置与修改get:获得句柄图形对象的属性和返回某
13、些获得句柄图形对象的属性和返回某些 对象的句柄值对象的句柄值set:改变图形对象的属性改变图形对象的属性专用函数:专用函数:gcf:当前窗口对象的句柄:当前窗口对象的句柄 Get Current Figuregca:当前轴对象的句柄:当前轴对象的句柄 Get Current Axes二、图形对象属性的获得与设置二、图形对象属性的获得与设置26操作格式:操作格式:h=gcf 将当前窗口对象的句柄返回将当前窗口对象的句柄返回hget(h)或或get(gcf)查阅当前窗口对象的查阅当前窗口对象的 属性属性delete(gcf)删除当前窗口的属性删除当前窗口的属性27例:创建一个线对象并返回线对象的句
14、柄值例:创建一个线对象并返回线对象的句柄值 h1=line(0:10,0:10)h1=57.0001h1为句柄的代码值为句柄的代码值28查阅线对象的属性名称和属性值get(h1)Color=1 1 0EraseMode=normalLineStyle=-LineWidth=0.5MarkerSize=6Xdata=(1 by 11)Ydata=(1 by 11)Zdata=29 ButtonDownFcn=Children=Clipping=onInterruptible=noParent=56.0001Type=lineUserData=Visible=on根据轴是线对象的父代,可查轴的句柄
15、 get(gca)30可查色序get(gca,colororder)ans=1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 131设置线条和窗口的颜色set(h1,color,1 0 0)set(h1,color,1 0.5 0)32set(gcf,color,0.5 0.5 0.5)set(gcf,color,0.5 0.6 0.8)33动画效果动画效果:影片动画、实时动画影片动画、实时动画影片动画影片动画生成的步骤生成的步骤1.创建帧矩阵创建帧矩阵 moviein2.对动画中的每一帧生成图形,并把它们对动画中的每一帧生成图形,并把它们放到帧矩阵中放到帧矩阵中 getframe3.从帧矩阵中回放动画从帧矩阵中回放动画 movie34小结:颜色影像图像句柄动画要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定35