1实验07低层绘图操作(第5章MATLAB绘图)一、实验目的1.掌握图形对象属性的基本操作。2.掌握利用图形对象进行绘图操作的方法。二、实验内容1.用figure函数建立图形窗口对象建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标器的左键之后显示出LeftButtonPressed字样。命令窗口中输入的命令及相应的结果:图形窗口结果:2.用line,set函数建立曲线对象并改变曲线的属性先利用默认属性绘制曲线y=x2e2x,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。程序(参考:x可取-3~0.3):改变前的图形:《数学软件》课内实验王平2改变后的图形:3.用surface,set函数建立曲面对象并改变曲面的属性利用曲面对象绘制曲面v(x,t)=10e-0.01xsin(2000πt-0.2x+π),要求与上题相同。程序(参考:x=0:2:100;t=0:2:100):改变前的图形:改变后的图形:4.以任意位置子图形式绘制出正弦、余弦、正切和余切函数曲线(用axes建立坐标对象)程序:图形:5.(选做题)生成一个圆柱体,并进行光照和材质处理程序:图形:三、实验提示四、教程:第5章MATLAB绘图(2/2)5.5低层绘图操作p114高层绘图:绘图函数的参数使用默认值。3低层绘图:绘图函数的参数值另外指定。5.5.1图形对象及其句柄p1141.图形对象表MATLAB的图形对象计算机屏幕图形窗口Figure坐标轴Axes用户菜单Uimenu用户控件Uicontrol曲线Line曲面Surface文本Text图像Image光源Light区域块Patch方框Rectangle系统将每一个对象按树型结构组织起来。计算机屏幕图形窗口用户菜单坐标轴曲线曲面文字图像光源区域块方框用户控件计算机屏幕为根对象,包含一个或多个图形窗口对象。图形窗口有3种类型的子对象。坐标轴有7种类型的子对象。对坐标轴及其7种子对象的操作即构成低层绘图操作。2.图形对象句柄在创建每一个图形对象时,为该对象分配唯一的一个值,称图形对象句柄(Handle)。计算机屏幕由系统自动建立,句柄值0。图形窗口的句柄值为一正整数(显示在标题栏上)。其他图形对象的句柄为浮点数。表5.5常用的获取图形对象句柄的函数p115函数名功能gcf获取当前图形窗口的句柄4gcagcofindobj获取当前坐标轴的句柄获取最近被选中图形对象的句柄按指定属性获取图形对象的句柄例绘制曲线并查看有关对象句柄p115x=linspace(0,2*pi,30);y=sin(x);h0=plot(x,y,'rx')%曲线对象的句柄h1=gcf%图形窗口句柄h2=gca%坐标轴句柄h3=findobj(gca,'Marker','x')%坐标轴上曲线的句柄5.5.2图形对象属性p1161.属性名与属性值对象具有各种属性,操作属性可控制和改变对象。对象的每个属性有一个名字,称属性名,属性名的取值称属性值。属性名不区分大小写,在不引起歧义的前提下,属性名不必写全。属性名用单引号括起来。2.属性的操作设置对象属性:set(句柄,属性名1,属性值1,属性名2,属性值2,…)句柄指明要操作的图形对象。set(句柄)显示句柄所有的允许属性。获取属性值:5V=get(句柄,属性名)V是返回的属性值。V=get(句柄)返回句柄所有的属性值。例使用set和get对属性操作p116x=0:pi/10:2*pi;h=plot(x,sin(x));set(h)%显示句柄所有的允许属性ans=DisplayName:{}Color:{}LineStyle:{5x1cell}LineWidth:{}Marker:{14x1cell}MarkerSize:{}MarkerEdgeColor:{2x1cell}MarkerFaceColor:{2x1cell}XData:{}YData:{}ZData:{}ButtonDownFcn:{}Children:{}Clipping:{2x1cell}CreateFcn:{}DeleteFcn:{}BusyAction:{2x1cell}6HandleVisibility:{3x1cell}HitTest:{2x1cell}Interruptible:{2x1cell}Selected:{2x1cell}SelectionHighlight:{2x1cell}Tag:{}UIContextMenu:{}UserData:{}Visible:{2x1cell}Parent:{}XDataMode:{2x1cell}XDataSource:{}YDataSource:{}ZDataSource:{}set(h,'Color','r','LineStyle',':','Marker','p');gh=get(h)%返回句柄所有的属性值gh=DisplayName:''Annotation:[1x1hg.Annotation]Color:[100]LineStyle:':'LineWidth:0.5000Marker:'pentagram'MarkerSize:6MarkerEdgeColor:'auto'MarkerFaceColor:'none'7XData:[1x21double]YData:[1x21double]ZData:[1x0double]BeingDeleted:'off'ButtonDownFcn:[]Children:[0x1double]Clipping:'on'CreateFcn:[]DeleteFcn:[]BusyAction:'queue'HandleVisibility:'on'HitTest:'on'Interruptible:'on'Selected:'off'SelectionHighlight:'on'Tag:''Type:'line'UIContextMenu:[]UserData:[]Visible:'on'Parent:173.0011XDataMode:'manual'XDataSource:''YDataSource:''ZDataSource:''col=get(h,'Color')col=100V=get(0,'ScreenSize')%0是计算机屏幕的句柄%显示左下角坐标和屏幕分辨率V=11128010243.对象的公共属性表对象常用的公共属性p117属性含义Children所有子对象的句柄Parent父对象的句柄Tag给对象定义一个标识符Type对象的类型UserData存放对象的有关数据Visible对象是/否可见(on/off)8ButtonDownFcn可存放一M文件名或一小段程序,当单击对象的作用域时,执行程序CreateFcn可存放一M文件名或一小段程序,当创建对象时,执行程序DeleteFcn可存放一M文件名或一小段程序,当取消对象时,执行程序例5.26对象的公共属性的设置p117在同一坐标下绘制红、绿两根不同曲线,希望获得绿色曲线的句柄,并对其进行设置。x=0:pi/50:2*pi;y=sin(x);z=cos(x);plot(x,y,'r',x,z,'g');%绘制两根不同的曲线H=get(gca,'Children');%获取两曲线句柄向量Hfork=1:size(H)ifget(H(k),'Color')==[010]%[010]代表绿色Hg=H(k);%获取绿色线条句柄endendpause%便于观察设置前后的效果set(Hg,'LineStyle',':','Marker','p');%对绿色线条设置5.5.3图形对象的创建p1181.图形窗口对象图形图像的输出是在图形窗口中完成的。建立图形窗口对象:句柄变量=figure(属性名1,属性值1,属性名2,属性值2,…)通过对属性操作改变图形窗口的形式。使用缺省属性值建立图形窗口:figure或句柄变量=figure关闭图形窗口:close(窗口句柄)closeall命令:关闭所有图形窗口。clf命令:清除当前图形窗口的内容,但不关闭窗口。9表图形窗口的常用属性p118属性含义MenuBar控制图形窗口是否具有菜单条Name图形窗口的标题NumberTitle图形窗口标题中是否有“FigureNo.n”Resize图形窗口建立后可否用鼠标改变大小Position窗口在屏幕上的位置(左下角坐标,x轴方向朝右,y轴朝下)和大小Units图形窗口使用的长度单位Color图形窗口背景颜色Pointer鼠标标记的显示形式KeyPressFcn键盘按下响应。值:函数名或命令名WindowButtonDownFcn鼠标键按下响应。值:函数名或命令名WindowButtonMotionFcn鼠标移动响应。值:函数名或命令名WindowButtonUpFcn鼠标键释放响应。值:函数名或命令名例5.27建立一个图形窗口p119(1)图形窗口没有菜单条;(2)标题名称为“图形窗口示例”;(3)起始于屏幕左下角、宽度和高度分别为300像素点和150像素点;(4)背景颜色为绿色;(5)当用户从键盘按下任意一个键时,将显示“Hello,KeyboardKeyPressed.”字样。hf=figure('Color',[0,1,0],...'Position',[1,1,300,150],...%左下角坐标(1,1)'Name','图形窗口示例',...'NumberTitle','off',...'MenuBar','none',...'KeyPressFcn',...'disp(''Hello,KeyboadKeyPressed.'')');%''是两个单引号10Hello,KeyboadKeyPressed.例5.28关闭图形窗口时执行程序(字符串续行符!)p119分别在4个不同的图形窗口绘制出正弦、余弦、正切、余切曲线。要求:先建立一个图形窗口并绘图;然后每关闭一个再建立一个;直到建立第4个窗口并绘图。x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=tan(x);ct=1./(t+eps);%命令组待用C4=['figure(''Name'',''cotangent(x)'',',...'''NumberTitle'',''off'');',...'plot(x,ct);axis([0,2*pi,-40,40]);'];C3=['figure(''Name'',''tangent(x)'',',...'''DeleteFcn'',C4,''NumberTitle'',''off'');',...'plot(x,t);axis([0,2*pi,-40,40]);'];C2=['figure(''Name'',''cos(x)'',',...'''DeleteFcn'',C3,''NumberTitle'',''off'');',...'plot(x,z);axis([0,2*pi,-1,1]);'];%先创建1个图形窗口并绘制曲线figure('Name','sin(x)','DeleteFcn',C2,...'NumberTitle','off');%关闭图形窗口时,执行C2plot(x,y);axis([0,2*pi,-1,1]);11注意!所有的引号都是单引号。相当于x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=tan(x);ct=1./(t+eps);figure('Name','sin(x)',...'NumberTitle','off');plot(x,y);axis([0,2*pi,-1,1]);pause;close(gcf);figure('Name','cos(x)',...'NumberTitle','off');plot(