null第六章 图形处理功能第六章 图形处理功能 二维平面图形的绘制
三维平面图形的绘制
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
数组
坐标轴的控制和图形标注
句柄图形
第六章 图形处理功能 第一节 二维平面图形的绘制第一节 二维平面图形的绘制
一、基本二维绘图命令
二、线型、标记和颜色
三、图形窗口分割
四、特殊二维图形 第六章 图形处理功能一、基本二维绘图命令一、基本二维绘图命令
【例6-1】 绘制单矢量曲线图。
在命令窗口输入矢量并绘图
>> y=[0 0.6 2.3 5 8.2 11.6 15 1 7.8 19.6 20];
>> plot(y)
结果如图6-1所示:
第二章 数组的运算基础第六章 图形处理功能null 图6-1 单矢量曲线图第六章 图形处理功能null【例6-2】 绘制y为复向量的单矢量曲线图。
>>x=-1:.1:1;
>>y=x.^2;
>>Y=x+y*i;
>>plot(Y)
结果如图6-2所示: 第六章 图形处理功能null 图 6-2 复向量单矢量曲线图 第六章 图形处理功能null【例6-3】 绘制双矢量曲线图。
>>x=linspace(0,2*pi,30);
>>y=sin(x);
>>plot(x,y)
结果如图6-3所示: 第六章 图形处理功能null 图6-3 x和y均为矢量时的双矢量曲线图第六章 图形处理功能null【例6-4】 绘制x为矢量,y为矩阵时的二维图形。
>>x=0:0.04:8; % x为1×201的矩阵
>>y=[cos(x);sin(x)]; % y为2×201的矩阵
>>plot(x,y)
结果如图6-4所示。第六章 图形处理功能null 图6-4 x为矢量,y为矩阵时的二维图形第六章 图形处理功能null 【例6-5】 绘制x为矩阵,y为矢量时的二维图形。
>>x1=0:.1:5;x2=1:.1:6;x3=2:.1:7;
>>x=[x1;x2;x3]; % x为3×51的矩阵
>>y=sin(x3); % y为1×51的矢量
>>plot(x,y)
结果如图6-5所示。第六章 图形处理功能null图6-5 x为矩阵,y为矢量时的二维图形第六章 图形处理功能null【例6-6】 x和y均为矩阵时的二维图形。
>>x1=0:0.1:5;x2=1:.1:6;x3=2:0.1:7;
>>x=[x1;x2;x3]; % x为3×51的矩阵
>>y1=sin(x1);y2=0.6*sin(x2);y3=0.2*sin(x3);
>>y=[y1;y2;y3]; % y为3×51的矩阵
>>plot(x,y);
结果如图6-6所示。第六章 图形处理功能null图 6-6 x和y均为矩阵时的二维图形第六章 图形处理功能null
提示:使用plot(x,y)绘图时,若x和y均是矢量或均是矩阵,
要求x和y的均有相同的size;若x和y中有一个是矢
量,有一个是矩阵,要求矢量的的列数与矩阵的列
数相等。 第六章 图形处理功能二、线型、标记和颜色二、线型、标记和颜色第六章 图形处理功能表6-2 绘图指令的颜色、标记和线型null 注意:如果用户没有声明是那一种线型时,Matlab
的曲线线型默认为实线、蓝色。如果没有设
置标记,就不会画出标记。当用户选择了一
种标记时,就会在每个数据点的位置画出所
选择的标记符号,但是不会用直线连接这些
标记点。第六章 图形处理功能null【例6-7】 线型、标记和颜色设置实例。
>>x=0:pi/20:2*pi;
>>y=sin(x);
>>y1=sin(x-0.25);
>>y2=sin(x-0.5);
>>y3=sin(x-0.75);
>>plot(x,y) % 使用默认曲线颜色和线型,没有标记
>>Hold on % 保留上面的曲线y
>>plot(x,y1,‘:k’) % 定义曲线颜色为黑色,线型为虚线,没有
定义标记
>>Hold on % 保留上面的曲线y1
>>plot(x,y2,'om') % 定义曲线为品红色,标记为空心圆
>>Hold on % 保留上面的曲线y2
>>plot(x,y3,‘-.gp’) % 定义曲线为绿色,线型为点划线 ,标记
为五角星第六章 图形处理功能null图6-7 线型、标记和颜色的设置第六章 图形处理功能三、图形窗口分割三、图形窗口分割【例6-8】 图形窗口分割设置示例1
>>x=linspace(0,2*pi,30);
>>y=sin(x);z=cos(x);
>>a=sin(x).*cos(x);
>>b=sin(x)./cos(x);
>>subplot(2,2,1);
>>plot(x,y)
>>axis([0,2*pi,-1 1]);
>>title('sin(x)')
>>subplot(2,2,2);
>>plot(x,z)第六章 图形处理功能null>>axis([0,2*pi,-1,1]);title('cos(x)')
>>subplot(2,2,3);plot(x,a)
>>axis([0,2*pi,-1 1]);title('sin(x)cos(x)')
>>subplot(2,2,4);plot(x,b)
>>axis([0,2*pi,-20,20]);title('sin(x)/cos(x)')
结果如图6-8所示。第六章 图形处理功能null 图6-8 图形窗口分割设置示例1第六章 图形处理功能null
【例6-9】 图形窗口分割设置示例2
>> subplot('position',[0.1 0.1 0.35 0.8])
>> yn=randn(10000,1);
>> hist(yn,20)
>> subplot('position',[0.55 0.55 0.35 0.35])
>> sphere
>> subplot('position',[0.55 0.1 0.35 0.35])
>> membrane
结果如图6-9所示。第六章 图形处理功能null图6-9 图形窗口分割设置示例2 第六章 图形处理功能四、特殊二维图形 四、特殊二维图形 1、条形图的绘制
bar 绘制二维垂直条形图
bar3 绘制三维垂直条形图
barh 绘制二维水平条形图
bar3h 绘制三维水平条形图
第六章 图形处理功能null【例6-10】 绘制二维条形图示例
>>x=-3:0.2:3;
>>y=x.^2;
>>subplot(1,2,1)
>>bar(x,y) % 绘制二维垂直条形图
>>subplot(1,2,2)
>>barh(x,y) % 绘制二维水平条形图
结果如图6-10所示。第六章 图形处理功能null图6-10 二维条形图绘制示例第六章 图形处理功能null
【例6-11】 绘制指定x坐标的条形图
>>x=[1 3 4 6 10];
>>Y=[9 8 6;2 4 6;6 2 9;5 7 6;9 4 3];
>>subplot(1,2,1)
>>bar(x,Y)
>>subplot(1,2,2)
>>bar(x,Y,'stack')
结果如图6-10所示。第六章 图形处理功能null图6-11 指定x坐标的二维条形图
(a)bar(x,Y);(b)bar(x,Y,’stack’)第六章 图形处理功能null 【例6-12】 绘制三维条形图的示例
>>y=[9 6 7;2 5 9;6 2 4;5 7 8;9 4 2];
>>subplot(1,3,1)
>>bar3(y,'group')
>>title('bar3')
>>subplot(1,3,2)
>>bar3(y)
>>title('bar3')
>>subplot(1,3,3)
>>bar3h(y)
>>title('bar3h')第六章 图形处理功能null图6-12 三维条形图绘制示例第六章 图形处理功能null 2. 绘制阶梯图
stairs(x) 生成一个向量x中的数据点的阶梯图
stairs(x,y) 将y中的数据点绘制在x值所声明的位置
stairs(…,s) s是一字符串,用于指定绘图时的曲线
线型、 颜色和标记等
【例6-13】 绘制阶梯图示例
>> t=-3:.1:3;
>> y=exp(-t).*(t.^2);
>> stairs(t,y)
>> axis([-3 0 0 200])第六章 图形处理功能null 图6-13 阶梯图绘制示例第六章 图形处理功能null绘制离散采样图
setm(x) 生成一个向量x中的数据点的杆状图
stem(x,y) 将y中的数据点绘制在x值所声明的位置
stem(…,’fill’) 选择参数’fill’表示数据采样点端部被 填涂为实心圆。
【例6-14】 绘制离散采样图
>>x=0:0.2:2*pi;
>>y=2*sin(x).*cos(x);
>>stem(x,y,'fill')第六章 图形处理功能null图6-14 离散采样图绘制示例第六章 图形处理功能null 【例6-15】 绘制带有标记的余弦曲线,并指定标记形 状、
标记边界的颜色和标记的大小。
>>x=-2*pi:0.15:2*pi;
>>y=sin(x);
>>plot(x,y,'^','markeredgecolor','k',…
'markerfacecolor', 'y','markersize',6)第六章 图形处理功能null图6-15 带有标记的正弦曲线第六章 图形处理功能null 4. 绘制直方图
hist(y) y可以是向量也可以是矩阵,当y为向量时,将y中的元素均匀分成10块,直方图的高度表示每一
部分元素的个数。当y为矩阵时,每列数据产生一个
直方图。
hist(y ,k) 根据k值确定横坐标的等分份数 ,绘制直方图。
第六章 图形处理功能null 【例6-16】 绘制直方图
>>y=randn(1000,1); % 生成一个随机矩阵
>>subplot(1,2,1)
>>hist(y)
>>subplot(1,2,2)
>>hist(y,20)第六章 图形处理功能null图6-16 直方图绘制示例第六章 图形处理功能null 5. 绘制极坐标曲线
polar(theta,rho)
theta(θ)是极角, rho(ρ)是
极径, 此命令用来绘制极坐标曲线ρ=f(θ)。
polar(theta,rho,s)
字符串s可以指定极坐标曲线的线型、
颜色、标记的;
【例6-17】 极坐标曲线绘制示例
>>t=0:0.1:8*pi;
>>r=2*cos(t/2);
>>polar(t,r)
>>title('双心脏线')第六章 图形处理功能null图6-17 极坐标曲线绘图示例第六章 图形处理功能null 6 . 绘制复向量曲线
【例6-18】 复向量绘图示例1
>> x=[10+3i,2+6i,-5+10i,-5-5i,8];
>> feather(x)第六章 图形处理功能图6-18 复向量绘图示例1null【例6-19】 复向量绘图示例2
>>z=eig(randn(20));
>>x=[10+3i,2+6i,-5+10i,-5-5i,8];
>>y=[3,6,10,5,0];
>>subplot(1,2,1)
>>compass(z)
>>subplot(1,2,2)
>>feather(x,y,'r');第六章 图形处理功能null图6-19 复向量绘图示例2第六章 图形处理功能null7. 绘制饼图
pie(x) x中的每一个数据对应饼图中的一个扇区。
pie(a,b) 从一个饼图中分离出一个或多个饼片,b
是与a同尺寸的矩阵,b中非零元素把与a对应位置
的饼分离出来。
h=pie(…) h 是返回图形的句柄,可以通过句柄对
饼图的属性重新设置。
pie3 绘制三维饼图。
第六章 图形处理功能null【例6-20】 二维饼图绘制示例
>>a=[0.5 1 1.6 1.2 .8 2.1];
>>b=[0 0 0 0 0 1];
>>pie(a)
>>pie(a,b); % 分离出饼图中的一部分第六章 图形处理功能null图6-20 绘制二维饼图第六章 图形处理功能null【例6-21】 三维饼图绘制示例
>>x=[1 2.4 1.6 3.8 2.5];
>>subplot(1,2,1)
>>pie3(x); % 绘制三维饼图
>>subplot(1,2,2)
>>explode=[1 0 0 1 0];
>>pie3(x,explode); % 绘制分割
的 三 维饼图
第六章 图形处理功能null图6-21 三维饼图绘制示例第六章 图形处理功能第二节 三维平面图形的绘制第二节 三维平面图形的绘制 一、三维曲线绘图命令二、网格图和表面图 三、视图可视效果、色彩控制
、透视效果和光照控制
第六章 图形处理功能一、三维曲线绘图命令一、三维曲线绘图命令第六章 图形处理功能表6-6 plot3函数调用格式null 【例6-22】 绘制x、y和z均为矢量的三维曲线图示例
>>t=0:pi/200:10*pi; % 定义数据向量
>>x=cos(t); % 计算x坐标向量
>>y=3*sin(t); % 计算y坐标向量
>>z=t.^2; % 计算z坐标向量
>>plot3(x,y,z) % 绘制空间曲线第六章 图形处理功能null图6-22 x、y和z均为矢量时的三维曲线第六章 图形处理功能null 【例6-23】 绘制x、y和z均为矩阵时的三维曲线
>> [x,y]=meshgrid([-2:0.1:2]); % 产生供三维绘图
的网格矩阵x、y
>> z=x.*exp(-x.^2-y.^2);
>> plot3(x,y,z)第六章 图形处理功能null图6-23 x、y和z均为矩阵时的三维曲线第六章 图形处理功能null
提示:meshgrid 是Matlab的内置函数,其格式为:
[X,Y]=meshgrid(x,y)。其中,输入数据x
和y是矢量,长度可以相等,也可以不等,
但输出数据X和Y是具有相同size的矩阵。
meshgrid指令主要作用是将两个矢量(x和y)
转换成两个矩阵(X和Y),这两个矩阵则是
Z=f(X,Y)的自变量。第六章 图形处理功能二、网格图和表面图二、网格图和表面图【例6-24】 绘制三维网格图的示例。
>> [x,y]=meshgrid(-8:0.5:8,-10:0.5:10); % 定义网格数据向量x, y
>> R=sqrt(x.^2+y.^2);
>> z=sin(R)./R;
>> subplot(1,3,1)
>> mesh(x,y,z); % 绘制三维网格图
>> title('mesh')
第六章 图形处理功能null>> subplot(1,3,2)
>> meshc(x,y,z) % 绘制带有等高线的三维网格图
>> title('meshc')
>> subplot(1,3,3)
>> meshz(x,y,z); % 绘制帘状三维网格图
(带基准水平 面的网格图)
>> title('meshz')第六章 图形处理功能null图6-24 三维网格图绘制示例第六章 图形处理功能null【例6-25】 绘制三维表面图的示例
% 定义网格数据向量x,y
>> [x,y]=meshgrid(-3:0.125:3,-5:0.125:5);
>> z=peaks(x,y); % 计算函数值
>> subplot(1,3,1)
>> surf(x,y,z); % 绘制三维表面图
>> title('surf(x,y,z)')
>> subplot(1,3,2)
>> surfc(x,y,z); % 绘制带有等高线的三维表面图
>>title('surfc(x,y,z)')
>>subplot(1,3,3)
>>surf(z);第六章 图形处理功能null图6-25 三维表面图的绘制示例第六章 图形处理功能三、视图可视效果、色彩控制、透视效果和光照控制三、视图可视效果、色彩控制、透视效果和光照控制1、视角控制
view([x,y,z]) 返回视点的直角坐标。
view(2) 设置默认的二维视图,其中
az=0°,el=90°。
view(3) 设置默认的三维视图,其中
az= -37.5°,el=30°。
第六章 图形处理功能null例6-26】 Matlab中从不同的角度查看三维函数的
图形。
>>t=0.01:0.01:3*pi;
>>z=sin(5*t)./(5*t);
>>y=zeros(size(t));
>>subplot(2,2,1);plot3(t,y,z,'m','LineWidth',2);grid on;
>>title(‘Default view')第六章 图形处理功能null>>subplot(2,2,2);plot3(t,y,z,'m','LineWidth',2);grid on;
>>title('az Rotated to 32.5');view(57.5,30)
>>subplot(2,2,3);plot3(t,y,z,'m','LineWidth',2);grid on;
>>title('el Rotated to 10');view(-37.5,10)
>>subplot(2,2,4);plot3(t,y,z,'m','LineWidth',2);grid on;
>>title('az=90,el=0');view(90,0)第六章 图形处理功能null图6-26 三维图形设置视角第六章 图形处理功能null2、色彩控制
【例6-27】 图形设置不同的背景颜色的示例。
>> subplot(1,3,1);colordef none;surf(peaks(25));
>> title('设置前的图形');
>> subplot(1,3,2);colordef gray;surf(peaks(25));
>> title('黑色背景的图形');
>> subplot(1,3,3);colordef white;surf(peaks(25));
>> title('白色背景的图形');
第六章 图形处理功能null图6-27 设置不同的背景颜色的示例第六章 图形处理功能null【例6-28】 画一个“patch”图形,并将其默 认的黑色
为自己所设的颜色。
>>h=patch;
>>set(h,'facecolor',[0.5 0.8 0.6])第六章 图形处理功能图6-28 设“patch”的表面颜色为豆绿色null3、着色控制
shading flat
网格线的每个线段和表面都有相同的颜色;
shading faceted
在shading flat的基础上,再在贴片的四周勾画黑色线;
shading interp
在shading flat的基础上,对线段或表面颜色进行插值,
使得整个表面上的颜色看上去是连续变化的。 第六章 图形处理功能null【例6-29】 图形颜色着色处理示例
>> subplot(1,3,1)
>> sphere(12)
>> axis square
>> shading flat
>> title('Flat Shading')
>> subplot(1,3,2)
>> sphere(12)
>> axis square
>> shading faceted
>> title('Faceted Shading')
>> subplot(1,3,3)
>> sphere(12)
>> axis square
>> shading interp
>> title('Interpolated Shading')第六章 图形处理功能null图6-29 图形颜色着色处理示例第六章 图形处理功能null4、透视控制
hidden off 对网格图做透明处理
hidden on 取消透明处理
【例6-30】 比较透明处理后网格图的变化
>> [x,y]=meshgrid(-4:0.6:4);
>> R=sqrt(x.^2+y.^2);
>> z=sin(R)./R;
>> mesh(z)
>> hidden off第六章 图形处理功能null图6-30 透明处理前后的效果对比
(a) 不做透明处理 ;(b) 做透明处理第六章 图形处理功能null5、光照效果
light(’PropertyName’, ’PropertyValue’,…)
其中PropertyName是属性名, PropertyValue是属 性
值。 第六章 图形处理功能【例6-31】 在Matlab中绘制peaks函数的三维图形,然后使用不同的光照效果。
null >> subplot(121);
>> surf(peaks);
>> title('Default')
>> subplot(122);
>> surf(peaks);
>> light('color','r','Position',[0 1 0],'style','local');
>> title('Red-Local Light')
第六章 图形处理功能null图6-31 不同的光照控制第六章 图形处理功能nulllighting命令的调用格式如下:
lighting flat
lighting gouraud
lighting phong
lighting none
第六章 图形处理功能null【例6-32】 在Matlab中绘制三维图形,然后使用不同的光照
效果。
>> t=0:pi/20:2*pi;
>> [x,y,z]=cylinder(4+cos(t));
>> subplot(2,2,1);mesh(x,y,z);light;lighting phong;title('phong')
>> subplot(2,2,2);surf(x,y,z);light;lighting flat;title('flat')
>> subplot(2,2,3);surf(x,y,z);light;shading interp;
>> lighting gouraud;title('gouraud')
>> subplot(2,2,4);surf(x,y,z);light;lighting none;title('none')第六章 图形处理功能null图6-32 不同的光照效果第六章 图形处理功能第三节 坐标轴的控制和图形标注第三节 坐标轴的控制和图形标注第六章 图形处理功能表6-12 axis函数的调用格式null【例6-33】 对比坐标轴范围对正切函数曲线的影响。
>> x=0:0.01:pi/2;
>> plot(x,cot(x),'r')
>> axis([0 pi/2 0 10])第六章 图形处理功能图6-33 坐标轴范围对图形的影响
(a) 绘制默认余切曲线 ;(b) 调整坐标轴后的余切曲线null【例6-34】 使用不同的坐标轴显示方式,绘制椭圆形。
>> t=[0:pi/40:2*pi];
>> x=2*cos(t);
>> y=3*sin(t);
>> subplot(2,2,1);plot(x,y);axis normal;
>>grid on;title('normal')
>> subplot(2,2,2);plot(x,y);axis equal;
>>grid on;title('equal')
>> subplot(2,2,3);plot(x,y);axis square;
>>grid on;title('square')
>> subplot(2,2,4);plot(x,y);axis tight;
>>grid on;title('tight')第六章 图形处理功能null图6-34 椭圆的四种不同坐标轴显示方式第六章 图形处理功能二、图形标注二、图形标注1、 title指令用于在图形上标注标题。xlabel指令、
ylabel指令、zlabel指令分别在x轴、y轴、z轴
上加标注。这四个指令用法相同,具体调用格式
如下:(function表示指令名)
function(’string’) 标注字符串’string’;
第六章 图形处理功能 function(…,’PropertyName’,’PropertyValue,…)
对标注的text对象设置属性及属性值;
h=function(…) 返回图形标注的句柄;
null表6-13 text指令的调用格式第六章 图形处理功能2、text指令用于在任意位置加注文本,格式如表6-13所示:null3、gtext指令用鼠标将文本放置在图形中,格式如表6-14所
示:
第六章 图形处理功能表6-14 gtext指令的调用格式null4、legend指令格式如表6-15所示:表6-15 legend指令的调用格式第六章 图形处理功能三、图形标注的精细命令三、图形标注的精细命令第六章 图形处理功能表6-16 常用符号及其定义这些符号的字符串null【例6-35】 在图形中添加标注示例
>>x=-pi:pi/20:pi;
>>plot(x,sin(x),'-o',x,cos(x),'-*')
>>legend('sin(x)','cos(x)')
>>gtext({'\leftarrowcos(x)';'sin(x)\rightarrow'},…
'fontweight','bold','fontsize',12);
>>title(‘sin函数和cos函数
','fontweight','bold','fontsize',12);
>>xlabel('x轴','fontweight','bold');ylabel('y轴',
'fontweight','bold');第六章 图形处理功能null图6-35 在图形中添加标注示例第六章 图形处理功能null【例6-36】 在图形中使用TeX字符
>> t=0:pi/40:2*pi;
>> alpha=0.5;beta=10;
>> y=sin(beta*t).*exp(alpha*t);
>> plot(t,y)
>> title('{\itAe}^{-\alpha\itt}sin\beta{\itt}')
>> xlabel('时间')
>> ylabel('幅度 )第六章 图形处理功能null图6-36 TeX字符使用示例第六章 图形处理功能null【例6-37】 在图形中加注标题和文本
>> x=0:pi/50:2*pi;
>> y=sin(x);
>> plot(x,y)
>> xlabel('0 \leq \itt \rm \leq \pi','FontSize',10)
>> ylabel('sin(x)','FontSize',12)
>> text(pi,sin(pi),'\leftarrowsin(x)=0','FontSize',10)
>> title('正弦函数图形','FontName','黑体','FontSize',12)第六章 图形处理功能null图6-37 在图形中加注标题和文本第六章 图形处理功能第四节 句柄图形第四节 句柄图形一、对象句柄
二、对象属性
三、图形对象句柄的操作
四、get和set函数第六章 图形处理功能一、对象句柄一、对象句柄第六章 图形处理功能图6-38 图形对象的层次二、对象属性二、对象属性 所有对象都有一组定义其特征的属性,通过设置这些属性,用户可以调整图形显示的方式。属性可以描述对象的诸多特性,这些包括对象的位置、颜色、类型、父对象句柄、子对象句柄及其它
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
。每个不同的对象都有其自身独立的属性,可以改变该对象的属性而不会影响其它的相同类型的对象的属性。
对象属性由属性名和相应的属性值构成。属性名是字符串,为了用户使用起来方便,通常按大小写的混合格式显示,并且字符串的第一个字母大写,例如“LineStyle”代表一个线条对象的属性风格,而写成“linestyle”也是可以的。第六章 图形处理功能null 当对象被创建时,其初始化属性值就是其默认值。这些默认属性值可以用两种
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
进行改变:在创建对象时,在函数调用中包含属性的设定;在对象创建之后,利用相应的函数可以改变属性的值,也就是后面即将介绍的set和get函数。
提示:关于不同图形对象的各种属性,请参见附录B第六章 图形处理功能三、图形对象句柄的操作三、图形对象句柄的操作第六章 图形处理功能表6-17 Matlab中的图形对象创建函数1、图形对象的创建null注 表中的显示图像函数“image”、建立菜单函
数“uimenu”和建立控件函数“uicontrol”将
在第7章中介绍。
前面,我们所画图形的坐标轴都是Matalb
默认的坐标轴,下面通过示例看一下用户
如何自己创建坐标轴。
【例6-38】 在一个图形窗口中建立两个
坐标轴,在第一个坐标轴内画一默认球体,
在第二个坐标轴内画一具有光照效果的
球体。第六章 图形处理功能null>> axes('position',[0.1 0.55 0.45 0.45]);
>> sphere(40)
>> axes('position',[0.1 0.05 0.45 0.45]);
>> sphere(40)
>> light('color','w','Position',[-10 -10 2],'style','local');
第六章 图形处理功能null图6-39 默认的球体和带有光照效果的球体第六章 图形处理功能null提示:使用“axes”函数时,应注意其位置属性值的
选取。括号内的四个数据[left bottom width
height ]中的前两个分别代表坐标轴到图形窗
口左边、下边的距离,后两个代表坐标轴自
身的宽度和高度,且这四个数据的取值范围
在0 和1之间。第六章 图形处理功能null图6-40 默认的矩形第六章 图形处理功能【例6-39】 建立一个矩形对象,并设置其相应的属性。
>> rectangle % 默认的矩形null>> rectangle('position',[0.1 0.8 .5 .4],'edgecolor','b',…
‘facecolor’,[0 1 0]) % 设置矩形的属性
% 给矩形加注交互文本
>> gtext(‘This is a rectangle.','fontsize',14,'fontweight','bold') 第六章 图形处理功能null图6-41 设置属性的矩形第六章 图形处理功能提示:矩形函数“rectangle”的位置属性的四元素向量的意义:[左下角的横坐标,矩形区域左下角的纵坐标,矩形的宽度,矩形的高度]。null【例6-40】 创建一个抛物曲面,并对其做相应属性的设置。
>>x=-4:0.5:4;
>>y=x;
>>[X,Y]=meshgrid(x,y);
>>Z=X.^2+Y.^2;
>>subplot(211)
>> mesh(Z) % 画未做任何属性设置的默认抛物面
>>subplot(212)
>>h=mesh(Z) % 画未做任何属性设置的默认抛物
面,并返回其句柄
>>set(h,'facecolor','m','edgecolor',[1 1 1],...
'marker','o','markeredgecolor','b') % 设置抛物面的四种属性第六章 图形处理功能null图6-42 默认抛物面和设置属性后的抛物面第六章 图形处理功能null【例6-41】 创建一个空间锥面图形对象,并将 其变
成二平面图形,再做相关属性的设置。
>>x=-4:0.5:4;
>>y=x;
>>[X,Y]=meshgrid(x,y);
>>Z=sqrt(X.^2+Y.^2);
>>mesh(Z)第六章 图形处理功能null图6-43 默认的空间锥面图形第六章 图形处理功能null figure % 建立第二个图形窗口
surface(Z) % 将锥面转变为二维平面图图6-44 空间锥面的二维平面图形第六章 图形处理功能null figure % 建立第三个图形窗口
% 设置平面图形的一些属性
surface('xdata',X,'ydata',Y,'zdata',Z,'facecolor','y',
'edgecolor',…
[0.48 1 0.66],'marker','o','markeredgecolor',[0 1 0])
% 将坐标轴的字号设为8号,颜色加深
set(gca,'fontsize',8,'fontweight','bold') 第六章 图形处理功能null图6-45 重新设置属性的二维平面图第六章 图形处理功能null2. 访问图形对象的句柄
(1)通过图形创建命令获取对象的句柄。例如:
Hline=plot(x,y);
Htext1=text(-36.6,-45.59,186.6,’Figure1’);
在上面的程序代码中,Hline,Htext1都是相应图形对象的句柄。第六章 图形处理功能null(2)通过get函数访问图形对象的句柄
Hpa=get(Hknown,PV) 获取Hknown句柄对象的句柄值
(3)对于用户当前操作的对象,Matlab提供了一些简单的访问
方法:
gcf 返回当前图形窗口的句柄
gca 返回当前窗口中的坐标轴的句柄
gco 返回最近被鼠标点击的图形对象的句柄
(4)使用对象的“标签”来访问对象句柄。用户可以通过’Tag’属
性来给对象设置一个标签,然后通过图形对象标签来访问对
象句柄,下面的程序代码所示可以访问相应的图形对象句柄。第六章 图形处理功能null>> plot(x,y,’Tag’,’Al’)
>> set(gca,’Tag’,’Al’)
【例6-42】 绘制sin(x)在[0,2π]范围内的图形,然后添加文本注释,最后访问图形对象句柄,修改文字注释的位置。
>> x=0:0.01:2*pi;
>> y=sin(x);
>> plot(x,y)
>> grid on第六章 图形处理功能null图6-46 绘制的基础图形第六章 图形处理功能null% 填加文本注释和设置标签
>> text(5,0.8,'\fontsize{16}cos(x)','Tag','Al');
图6-47 添加文字注释第六章 图形处理功能null>> H=findobj(gca,'Tag','Al'); % 获取文本对象的句柄
>> set(H,'position',[3 0.8]) % 重新设置文本注释的位置图6-48 修改文本的位置属性第六章 图形处理功能null>> Hfigure=get(gca,'children'); % 查看图形对象的子类型
>> T=get(Hfigure,'type')
T =
'text'
'line'
例6-42的第5、6、7行的代码也可以用下面的代码替换:
>> htext=text(5,0.8,'\fontsize{16}cos(x)');
>> set(htext,'position',[3 0.8])
这里,在建立文本对象时,返回其句柄 “htext”,然后通
过访问其句柄来修改其位置属性值 ,即将文本“cos”沿水
第六章 图形处理功能null
平方向左移动两个位置。另外,通过第8条语句可以获
坐标轴的子对象,显然,子对象包括填加的文本和所
画的余弦曲线,即,“text”和“line”。
3. 使用句柄操作查找图形对象
使用函数findobj可以快速遍历对象层并获取指定了属性
值的对象句柄。该函数有如表6-18所示几种调用方式:第六章 图形处理功能null 表6-18 函数“findobj”的几种调用格式第六章 图形处理功能null下面仍以例6-42来看一下“findobj”的用法。接续上面的代码,在命令窗口
中输入:
>> h=findobj(gcf)
h =
1.0000
151.0070
153.0071
152.0081
这里,h(1)=1.0000为图形对象的句柄;h(2)=151.0070为图形的下一级子对
象---坐标轴的句柄;h(3)=153.0071是坐标轴的下一级子对象---文本的句
柄;h(4)=152.0081是坐标轴的下一级子对象---文本的句柄;第六章 图形处理功能nullh(4)=152.0081是坐标轴的下一级子对象线条的句柄。可见句柄中的元素排列顺序是由各个对象在整个对象层次中的位置决定的。如果使用令:
>> h=findobj(htext)
h=
153.0071
正是文本对象的句柄。
四、get和set函数
“get”和“set”函数的常用调用格式如下:第六章 图形处理功能null1. get函数
get(h) 返回图形对象h的所有属性和它们的属性值
get(h,’PropertyName’) 返回图形对象h指定的属性
’PropertyName’的属性值
get(h,’Default’) 返回当前对象h的所用默认值
2. set函数
set(h,’PropertyName1’,’PropertyValue1’,’PropertyName2’,
’PropertyValue2’…)
设置图形对象句柄h指定的属性’PropertyName’的属性值。第六章 图形处理功能null 【例6-43】 建立一个补片函数,并获取和设置其常用属性的属性值。
>> h=patch % 建立一个补片函数,并返回其句柄第六章 图形处理功能图6-49 “patch”函数图形null>> get(h,'facecolor')
ans =
0 0 0
即“patch”的表面颜色为黑色。
>> set(h,'marker','o','markerfacecolor',...
[1 1 0],'edgecolor',[0 1 1],...
'facecolor',[0 0 1])第六章 图形处理功能null图6-50 重新设置属性后的“patch”函数图形第六章 图形处理功能null【例6-44】 画余弦和正弦曲线,并练习使用“set”和“get”
函数。
>> t=0:pi/20:2*pi;
>> y1=sin(t);
>> hline1=plot(t,y1)
>> hold on
>> y2=cos(t);
>> hline2=plot(t,y2)第六章 图形处理功能null图6-51 默认的正、余弦曲线第六章 图形处理功能null图6-52 正弦曲线的某些属性被重新设置第六章 图形处理功能>> set(hline1,'linestyle',':','linewidth',2.5,'color','r')
% 正弦曲线的线型、线宽、颜色被重新设置null利用“get”函数看一下正弦曲线的属性是不是“set”函数所设置的
属性,命令如下:
>> get(hline1,{'linestyle','linewidth','color'})
ans =
':' [2.5000] [1x3 double]
上面的命令运行的结果正是“set”函数所设置的属性值。同时在
命令窗口还可以得到正、余弦曲线的句柄值分别为:
>> hline1 =
168.0304
>> hline2 =
169.0304第六章 图形处理功能null【例6-45】 画余弦和正弦曲线,并将其横坐标以弧度形式表示。
>> t=0:pi/20:2*pi;
>> y1=sin(t);
>> hline1=plot(t,y1)
>> hold on
>> y2=cos(t);第六章 图形处理功能null>> hline2=plot(t,y2)
>> set(gca,'xtick',[0:pi/2:2*pi],...
'xticklabel',{'0' 'pi/2' 'pi' '3pi/2' '2pi'},...
'fontsize',8,'fontweight','bold')第六章 图形处理功能null图6-53 横坐标为弧度的正、余弦曲线第六章 图形处理功能