《刘卫国全套配套课件matlab程序设计与应用第3版第10章matlab图形对象句柄源程序》由会员分享,可在线阅读,更多相关《刘卫国全套配套课件matlab程序设计与应用第3版第10章matlab图形对象句柄源程序(6页珍藏版)》请在金锄头文库上搜索。
1、第10章 MATLAB图形对象句柄例10-1 在同一坐标下绘制红、绿两根不同曲线,希望获得绿色曲线的句柄,并对其进行设置。程序如下:x=0:pi/50:2*pi;y=sin(x);z=cos(x);plot(x,y,r,x,z,g) %绘制两根不同的曲线Hl=get(gca,Children); %获取两曲线句柄向量Hlfor k=1:size(Hl) if get(Hl(k),Color)=0,1,0 %0,1,0代表绿色 Hlg=Hl(k); %获取绿色线条句柄 endendpause %便于观察设置前后的效果set(Hlg,LineStyle,:,Marker,p) %对绿色线条进行设置
2、例10-2 建立一个图形窗口。该图形窗口没有菜单条,标题名称为“图形窗口示例”,起始于屏幕左下角、宽度和高度分别为300像素点和150像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将显示“Hello,World!”字样。 命令如下: hf=figure(Color,0,1,0,Position,1,1,300,150,. Name,图形窗口示例,NumberTitle,off,MenuBar,none,. KeyPressFcn,disp(Hello,World!);例10-3 分别在4个不同的图形窗口绘制出正弦、余弦、正切、余切曲线。要求先建立一个图形窗口并绘图,然后每关闭一个再建
3、立下一个,直到建立第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,. Numbe
4、rTitle,off);plot(x,z);axis(0,2*pi,-1,1);%先创建一个图形窗口并绘制曲线figure(Name,sin(x),DeleteFcn,C2,NumberTitle,off)plot(x,y)axis(0,2*pi,-1,1)例10-4 利用坐标轴对象实现图形窗口的任意分割。clf; %清除当前图形窗口的内容x=linspace(0,2*pi,20);y=sin(x);axes(Position,0.2,0.2,0.2,0.7,GridLineStyle,-.)plot(y,x);title(sin(x)-1)axes(Position,0.4,0.5,0.2,
5、0.1)stairs(x,y);title(sin(x)-2)axes(Position,0.55,0.6,0.25,0.3)stem(x,y);title(sin(x)-3)axes(Position,0.55,0.2,0.25,0.3)x,y=meshgrid(-8:0.5:8);z=sin(sqrt(x.2+y.2)./sqrt(x.2+y.2+eps);mesh(x,y,z); title(mesh(x,y,z)例10-5 利用曲线对象绘制曲线。程序如下:t=0:pi/100:pi/2;y1=sin(2*pi*t);y2=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(
6、3)*t+pi/3);axes(GridLineStyle,:,XLim,0,pi/2,YLim,-1,1)line(XData,t,YData,y1,LineWidth,1)line(t,y2)grid on例10-6 利用曲面对象绘制三维曲面z=sinycosx。程序如下:x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);axes(view,-37.5,30)hs=surface(x,y,z,FaceColor,w,EdgeColor,flat);grid onxlabel(x-axis),ylabel(y-axis),zlabel(z-axis)
7、title(mesh-surf)pauseset(hs,FaceColor,flat)例10-7 利用曲线对象绘制y=sin 和y=cos 并利用文字对象完成标注。程序如下:theta=-pi:.1:pi;y1=sin(theta);y2=cos(theta);h=line(theta,y1,LineStyle,:,Color,g);line(theta,y2,LineStyle,-,Color,b)xlabel(-pi leq theta leq pi)ylabel(sintheta)title(Plot of sintheta)text(-pi/4,sin(-pi/4),leftarrow
8、 sin(-pidiv4),FontSize,12)set(h,Color,r,LineWidth,2) %改变曲线1的颜色和线宽例10-8 绘制两个相互垂直且直径相等的圆柱体的交线。%PLINE 绘制给定点和属性的直线。% pline(P,w,c,s)是绘制直线的函数% 直线的坐标在矩阵P中描述,宽度是w,颜色是c,线型是s% 对于二维曲线,矩阵P的格式如下:% x1 x2 xn% y1 y2 yn% 其中 x1、y1是坐标的第一个点,其余坐标点类推。三维曲线相应改为3行function pline(P,w,c,s)m,n=size(P);if m=2 %二维曲线 H1=plot(P(1,:
9、),P(2,:); set(H1,Linewidth,w,Color,c,LineStyle,s)elseif m=3 %三维曲线 H2=plot3(P(1,:),P(2,:),P(3,:); set(H2,LineWidth,w,Color,c,LineStyle,s)else error(输入参数P的维数不正确!)end下面是绘制两个相互垂直且直径相等的圆柱体的交线的程序。%前视图P0=0;0;P1=-5;5;P2=-13;5;P3=-13;-5; %水平圆柱体坐标设置P4=13;-5;P5=13;5;P6=5;5;patch(P0(1),P6(1),P5(1),P4(1),P3(1),P
10、2(1),P1(1),. P0(2),P6(2),P5(2),P4(2),P3(2),P2(2),P1(2),y) %绘制水平圆柱体axis(-15,30,-27,18),axis equal,axis offhold onP7=5;15;P8=-5;15; %垂直圆柱体坐标设置patch(P0(1),P6(1),P7(1),P8(1),P1(1),. P0(2),P6(2),P7(2),P8(2),P1(2),g) %绘制垂直圆柱体pline(P0,P1,P2,P3,P4,P5,P6,P0,2.5,k,-) %绘制水平圆柱体的外围线pline(P6,P7,P8,P1,2.5,k,-) %绘制
11、垂直圆柱体的外围线%侧视图r=5; %两个圆柱体的半径t=0:pi/100:2*pi;x=23+r*cos(t);y=r*sin(t); %水平圆柱体坐标设置patch(x,y,y) %绘制水平圆柱体P11=28;0;P12=28;15;P13=18;15;P14=18;0; %垂直圆柱体坐标设置t=0:pi/100:pi;x1=23+r*cos(t);y1=r*sin(t);patch(x1,P11(1),P12(1),P13(1),P14(1),. y1,P11(2),P12(2),P13(2),P14(2),g) %绘制垂直圆柱体pline(x;y,2.5,k,-) %绘制水平圆柱体的外
12、围线pline(P11,P12,P13,P14,2,k,-) %绘制垂直圆柱体的外围线%轴线ha=plot(-14,29,0,0,k-.); %绘制水平轴ha.LineWidth=1.5;ha=plot(0,0,-6,16,k-.); %绘制前视图的垂直轴ha.LineWidth=1.5;ha=plot(23,23,-6,16,k-.); %绘制侧视图的垂直轴ha.LineWidth=1.5;%标题及标注ht=title(两个圆柱体的交线);ht.FontSize=12;ht=text(-3,-10,水平圆柱体:y2+z2=r2);ht.FontSize=12;ht=text(-3,-15,垂直圆柱体:x2+y2=r2);ht.FontSize=12;ht=text(-3,-20,交线的投影:z2-x2=0);ht.FontSize=12;hold off例10-9 在同一个图形窗口中创建矩形、圆角矩形、椭圆和圆各一个,并使用了不同的线型和线宽。程序如下:subplot(2,2,1)rectangle(Position,2,3,25,15,LineWidth,3)subplot