实验07低层绘图操作第5篇.docx
- 文档编号:16542599
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:34
- 大小:52.24KB
实验07低层绘图操作第5篇.docx
《实验07低层绘图操作第5篇.docx》由会员分享,可在线阅读,更多相关《实验07低层绘图操作第5篇.docx(34页珍藏版)》请在冰点文库上搜索。
实验07低层绘图操作第5篇
实验07低层绘图操作
(第5章MATLAB绘图)
一、实验目的
1.掌握图形对象属性的基本操作。
2.掌握利用图形对象进行绘图操作的方法。
二、实验内容
1.用figure函数建立图形窗口对象
建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标器的左键之后显示出LeftButtonPressed字样。
命令窗口中输入的命令及相应的结果:
图形窗口结果:
2.用line,set函数建立曲线对象并改变曲线的属性
先利用默认属性绘制曲线y=x2e2x,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。
程序(参考:
x可取-3~0.3):
改变前的图形:
改变后的图形:
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
高层绘图:
绘图函数的参数使用默认值。
低层绘图:
绘图函数的参数值另外指定。
5.5.1图形对象及其句柄p114
1.图形对象
表MATLAB的图形对象
Ø计算机屏幕
Ø图形窗口Figure
Ø坐标轴Axes
Ø用户菜单Uimenu
Ø用户控件Uicontrol
Ø曲线Line
Ø曲面Surface
Ø文本Text
Ø图像Image
Ø光源Light
Ø区域块Patch
Ø方框Rectangle
系统将每一个对象按树型结构组织起来。
计算机屏幕
图形窗口
用户菜单
坐标轴
曲线
曲面
文字
图像
光源
区域块
方框
用户控件
Ø计算机屏幕为根对象,包含一个或多个图形窗口对象。
Ø图形窗口有3种类型的子对象。
Ø坐标轴有7种类型的子对象。
对坐标轴及其7种子对象的操作即构成低层绘图操作。
2.图形对象句柄
在创建每一个图形对象时,为该对象分配唯一的一个值,称图形对象句柄(Handle)。
Ø计算机屏幕由系统自动建立,句柄值0。
Ø图形窗口的句柄值为一正整数(显示在标题栏上)。
Ø其他图形对象的句柄为浮点数。
表5.5常用的获取图形对象句柄的函数p115
函数名
功能
gcf
gca
gco
findobj
获取当前图形窗口的句柄
获取当前坐标轴的句柄
获取最近被选中图形对象的句柄
按指定属性获取图形对象的句柄
例绘制曲线并查看有关对象句柄p115
x=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图形对象属性p116
1.属性名与属性值
Ø对象具有各种属性,操作属性可控制和改变对象。
Ø对象的每个属性有一个名字,称属性名,属性名的取值称属性值。
Ø属性名不区分大小写,在不引起歧义的前提下,属性名不必写全。
Ø属性名用单引号括起来。
2.属性的操作
设置对象属性:
set(句柄,属性名1,属性值1,属性名2,属性值2,…)
句柄指明要操作的图形对象。
set(句柄)显示句柄所有的允许属性。
获取属性值:
V=get(句柄,属性名)
V是返回的属性值。
V=get(句柄)返回句柄所有的属性值。
例使用set和get对属性操作p116
>>x=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}
HandleVisibility:
{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.5000
Marker:
'pentagram'
MarkerSize:
6
MarkerEdgeColor:
'auto'
MarkerFaceColor:
'none'
XData:
[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.0011
XDataMode:
'manual'
XDataSource:
''
YDataSource:
''
ZDataSource:
''
>>col=get(h,'Color')
col=
100
>>V=get(0,'ScreenSize')%0是计算机屏幕的句柄
%显示左下角坐标和屏幕分辨率
V=
1112801024
>>
3.对象的公共属性
表对象常用的公共属性p117
属性
含义
Children
所有子对象的句柄
Parent
父对象的句柄
Tag
给对象定义一个标识符
Type
对象的类型
UserData
存放对象的有关数据
Visible
对象是/否可见(on/off)
ButtonDownFcn
可存放一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');%获取两曲线句柄向量H
fork=1:
size(H)
ifget(H(k),'Color')==[010]%[010]代表绿色
Hg=H(k);%获取绿色线条句柄
end
end
pause%便于观察设置前后的效果
set(Hg,'LineStyle',':
','Marker','p');%对绿色线条设置
5.5.3图形对象的创建p118
1.图形窗口对象
图形图像的输出是在图形窗口中完成的。
●建立图形窗口对象:
句柄变量=figure(属性名1,属性值1,属性名2,属性值2,…)
通过对属性操作改变图形窗口的形式。
●使用缺省属性值建立图形窗口:
figure或句柄变量=figure
●关闭图形窗口:
close(窗口句柄)
●closeall命令:
关闭所有图形窗口。
●clf命令:
清除当前图形窗口的内容,但不关闭窗口。
表图形窗口的常用属性p118
属性
含义
MenuBar
控制图形窗口是否具有菜单条
Name
图形窗口的标题
NumberTitle
图形窗口标题中是否有“FigureNo.n”
Resize
图形窗口建立后可否用鼠标改变大小
Position
窗口在屏幕上的位置(左下角坐标,x轴方向朝右,y轴朝下)和大小
Units
图形窗口使用的长度单位
Color
图形窗口背景颜色
Pointer
鼠标标记的显示形式
KeyPressFcn
键盘按下响应。
值:
函数名或命令名
WindowButton
DownFcn
鼠标键按下响应。
值:
函数名或命令名
WindowButton
MotionFcn
鼠标移动响应。
值:
函数名或命令名
WindowButton
UpFcn
鼠标键释放响应。
值:
函数名或命令名
例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.'')');%''是两个单引号
Hello,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');%关闭图形窗口时,执行C2
plot(x,y);
axis([0,2*pi,-1,1]);
注意!
所有的引号都是单引号。
相当于
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(x,z);
axis([0,2*pi,-1,1]);
pause;close;
figure('Name','tangent(x)',...
'NumberTitle','off');
plot(x,t);
axis([0,2*pi,-40,40]);
pause;close;
figure('Name','tangent(x)',...
'NumberTitle','off');
plot(x,ct);
axis([0,2*pi,-40,40]);
pause;close;
2.坐标轴对象
●建立坐标轴对象:
句柄变量=axes(属性名1,属性值1,属性名2,属性值2,…)
调用axes函数用指定的属性在当前图形窗口创建坐标轴,句柄赋给左边的变量。
●使用缺省属性值创建坐标轴:
axes或句柄变量=axes
●用axes函数建立坐标轴后,还可调用axes函数将之设定为当前坐标轴,且坐标轴所在的图形窗口自动成为当前图形窗口:
axes(坐标轴句柄)
表坐标轴的常用属性p120
属性
含义
Box
坐标轴是/否有边框(on/off)
GridLineStyle
网格线的类型
Position
位于图形窗口内的位置和大小
Units
度量单位
TiTle
取值是标题文字对象的句柄
XLabel
YLabel
ZLabel
取值分别是x,y,z轴说明文字的句柄
XLim
YLim
ZLim
各坐标轴的上限和下限,默认值为[0,1]
XScale
YScale
ZScale
坐标轴的刻度类型(linear/log)
View
视点方向
例5.29利用坐标轴对象实现图形窗口的任意分割p121
利用axes函数可在不影响图形窗口上其他坐标轴的前提下建立一个新的坐标轴,从而实现图形窗口的任意分割。
clf;%清除图形窗口中的内容
x=linspace(0,2*pi,20);
y=sin(x);
axes('Position',[0.2,0.2,0.2,0.7],...%左下角坐标
'GridLineStyle','-.');%x轴向右,y轴向上
plot(y,x);title('sin(x)-1');
axes('Position',[0.4,0.5,0.2,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);%eps使分母不为0
mesh(x,y,z);title('mesh(x,y,z)');
3.曲线对象
建立曲线对象:
句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值2,…)
对x,y,z的解释与高层曲线函数plot和plot3等一样,其余的解释与前面介绍过的figure和axes函数类似。
表曲线的常用属性p121
属性
含义
Color
曲线的颜色
LineStyle
线型
LineWidth
线宽
Marker
数据点标记符号
MarkerSize
数据点标记符号的大小
XData
YData
ZData
3个坐标轴数据
例5.30利用曲线对象绘制曲线p122
t=0:
pi/100:
pi/2;
y1=sin(2*pi*t);
y2=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);
figh=figure;
axes('GridLineStyle',':
','XLim',[0,pi/2],'YLim',[-1,1]);
line('XData',t,'YData',y1,'LineWidth',1);
line(t,y2);%不给出属性名
gridon
4.文字对象
使用text函数可根据指定位置和属性值添加文字说明,并保存句柄。
句柄变量=text(x,y,z,'说明文本',属性名1,属性值1,属性名2,属性值2,…)
说明文本中除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符。
表文字的常用属性p123
属性
含义
Color
文字的颜色
String
文字标注的内容
Interpreter
文字标注内容的解释方式,即LateX/ASCII方式
FontSize
文字的大小
Rotation
文字的旋转角度
例5.31利用文字对象对曲线标注p123
y1=sinθ,y2=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('sin(\Theta)')
title('Plotofsin(\Theta)')
text(-pi/4,sin(-pi/4),...
'\leftarrowsin(-\pi/4)','FontSize',12)
set(h,'Color','r','LineWidth',2)%改变曲线1的颜色和线宽
5.曲面对象
建立曲面对象:
句柄变量=surface(x,y,z,属性名1,属性值1,属性名2,属性值2,…)
对x,y,z的解释与高层曲面函数mesh和surf等一样,其余的解释与前面介绍过的figure和axes等函数类似。
表曲面的常用属性p124
属性
含义
EdgeColor
曲面网格线的颜色
FaceColor
曲面网格片的颜色
LineStyle
曲面网格线的线型
LineWidth
曲面网格线的线宽
Marker
数据点标记符号
MarkerSize
数据点标记符号大小
XData
YData
ZData
3个坐标轴数据
例5.32利用曲面对象绘制三维曲面p124
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');
gridon;
xlabel('x-axis');ylabel('y-axis');
zlabel('z-axis');
title('mesh-surf');
pause%按任意键继续
set(hs,'FaceColor','flat');
6.区域块对象
区域块对象是指一个任意多边形区域。
高级语法形式:
指定每个小面的顶点坐标和颜色创建区域对象。
patch(x,y,z,c)
x,y,z确定顶点坐标。
若为矩阵,按列创建多个多边形。
c指定每一区域块对象的颜色。
低级语法形式:
指定所有顶点的坐标和各小面的顶点和颜色创建,只接受属性名和属性值配对参数。
句柄变量=patch(属性名1,属性值1,属性名2,属性值2,…)
表区域块的常用属性p126
属性
含义
Faces
各小面的顶点
Vertices
各顶点的坐标
FaceColor
小面的颜色
EdgeColor
小面边缘的颜色
FaceVertexCData
所需的颜色数据
例利用区域块对象绘制图形p125-126
x=[10,10,25,25];%红色填充的正方形区域
y=[10,25,25,10];%高级
patch(x,y,[1,0,0])%按顺时针
t=0:
pi/5:
2*pi;%黄色填充具有10条边的正多边形
patch(sin(t),cos(t),'y');%高级
axisequal
vert=[10,10;10,25;25,25;25,10];%红色填充的正方形
fac=[1,2,3,4];%低级
patch('Faces',fac,'Vertices',vert,'FaceColor','r');
例绘制一个由4个小面组成的扇面p126
%高级格式
x=[0,0,0,0;1,0.8,0.5,0;1,1,0.8,0.5];
y=[0,0,0,0;0.5,0.8,1,1;0,0.5,0.8,1];
z=[0.5,0.5,0.5,0.5;1.5,1.5,1.5,1.5;
1.5,1.5,1.5,1.5];
mc=jet(4);%定义色图矩阵4×3
c(1,1,1:
3)=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 07 低层 绘图 操作