第5章图形处理功能.ppt
《第5章图形处理功能.ppt》由会员分享,可在线阅读,更多相关《第5章图形处理功能.ppt(85页珍藏版)》请在三一文库上搜索。
1、第5章 图形处理功能 5.1 二维图形 5.2 三维图形 5.3 三维图形的精细处理 5.4 图形对象及其句柄 5.5 图形光照和材质处理 5.6 图形显示与动画制作,教学目标,MATLAB语言除了有强大的矩阵处理功能之外,它的绘图功能也是相当强大的。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。,教学重点,基本的绘图命令 各种图形注释方法 三维图形的绘制方法,5.1 二维图形,5.1.1绘制二维曲线的基本函数,1. plot函数的基本用法 plot函数的基本调用格式为: plot(x,y) 说明: (1)当x
2、和y都为向量时,x和y必须具有同样的长度,分别用于存储x坐标和y坐标数据。,例:在0X2区间内,绘制曲线y=2e-0.5xsin(2x)。 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y) 例:绘制参数方程曲线。 程序如下: t=-pi:pi/100:pi; x=t.*cos(3*t); y=t.*sin(t).*sin(t); plot(x,y);,5.1 二维图形,5.1.1绘制二维曲线的基本函数,1. plot函数的基本用法 plot(x,y) 说明: (2)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不
3、同色彩的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。如果y是一个行列均与x的长度相等的方阵,则以每列作为一组绘图数据。,【例】当x为矢量,y为矩阵时绘制多重曲线图。 程序如下: x=0:pi/50:2*pi; y=sin(x); y(2,:)=0.6*sin(x); y(3,:)=0.3*sin(x); plot(x,y),5.1 二维图形,5.1.1绘制二维曲线的基本函数,1. plot函数的基本用法 plot(x,y) 说明: (3)当x是矩阵,y是向量时,则按类似(2)的规则,只是将x中的每一行或列对应于y进行绘图。,【例】当x为矩阵,y为矢量时绘制多重曲线图。 x
4、=0:pi/50:2*pi; x(2,:)=pi./4:pi/50:(2*pi+pi/4); x(3,:)=pi/2:pi/50:(2*pi+pi/2); y=sin(x(1,:); plot(x,y , -o),5.1 二维图形,5.1.1绘制二维曲线的基本函数,1. plot函数的基本用法 plot(x,y) 说明: (4)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。,【例】当x和y为同样大小的矩阵时,绘制多重曲线图。 x=0:pi/50:2*pi; x(2,:)=pi/4:pi/50:2*pi+pi/4; x(3,:)=pi/2:pi/50
5、:2*pi+pi/2; y=sin(x(1,:); y(2,:)=0.6*sin(x(1,:); y(3,:)=0.3*sin(x(1,:); plot(x,y) x=x; y=y; figure %创建新的图形窗口 plot(x,y),5.1 二维图形,5.1.1绘制二维曲线的基本函数,2.含多个输入参数的plot函数 含多个输入参数的plot函数调用格式为: plot(x1,y1,x2,y2,xn,yn) plot(x1,y1,选项1,x2,y2, 选项2,xn,yn,选项n) 说明:这种用法把y1对于x1、y2对于x2、等的图线绘在一幅图形上,而且可以分别采用不同的图线形式。这种多组变量
6、绘图的优点是允许将不同大小的矩阵或矢量的图形绘制在一幅图形上。,选项n是用来指定曲线的色彩、线型和数据点型参数。,plot(x1,y1,选项1,x2,y2, 选项2,xn,yn,选项n),如: plot(x1,y1,b+-,x2,y2, xr,x3,y3,*g),在指定线型、颜色和数据点型三种属性时应注意: (1)3种属性的符号必须放在同一个字符串中; (2)每条曲线可以只指定其中的一个属性,也可以同时指定两个 或3个属性。 (3)属性的先后顺序无关。 (4)每条曲线指定的属性中同类属性不能有两个以上。,例:用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2x)及其包络线。 程序
7、如下: x=(0:pi/100:2*pi); y1=2*exp(-0.5*x)*1,-1; y2=2*exp(-0.5*x).*sin(2*pi*x); x3=(0:12)/2; y3=2*exp(-0.5*x3).*sin(2*pi*x3); plot(x,y1,g:,x,y2,b-,x3,y3,rp);,5.1 二维图形,5.1.1绘制二维曲线的基本函数,3.双纵坐标函数plotyy plotyy函数是MATLAB 5.X新增的函数。它能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为: plotyy(x1,y1,x2,y2) 其中x1_y1对应一条曲线,x2_y2对
8、应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1_y1数据对,右纵坐标用于x2_y2数据对。,例:用不同标度在同一坐标内绘制曲线 y1=e-0.5xsin(2x)及曲线y2=1.5e-0.1xsin(x)。 程序如下: x1=0:pi/100:2*pi; x2=0:pi/100:3*pi; y1=exp(-0.5*x1).*sin(2*pi*x1); y2=1.5*exp(-0.1*x2).*sin(x2); plotyy(x1,y1,x2,y2);,5.1 二维图形,5.1.2 绘制图形的辅助操作,1.图形标注,有关图形标注函数的调用格式为: title(图形名称) xlabe
9、l(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,),标注举例: x=linspace(-3,5,100) y=cos(x); z=sin(x); plot(x,y,r+,x,z,b-) title(一条正弦曲线和一条余弦曲线) xlabel(x的取值范围) ylabel(Y和Z的值) legend(正弦, 余弦 ),2. 坐标控制 函数的调用格式为: axis(xmin xmax ymin ymax zmin zmax) axis函数功能丰富,常用的用法还有: axis equal 纵、横坐标轴采用等长刻度 axis square 产生正方
10、形坐标系(缺省为矩形) axis auto 使用缺省设置 axis off 取消坐标轴 axis on 显示坐标轴 书中P129,例5-47,5-48.,5.1 二维图形,5.1.2 绘制图形的辅助操作,3. 坐标网格的填加 在图形绘制过程中,为了精确地知道图形上某点的坐 标,需要绘制坐标网格来定位,MATLAB 语言中提供了 grid函数来实现这一功能:,5.1 二维图形,5.1.2 绘制图形的辅助操作,grid off命令关闭坐标网格; grid on命令打开坐标网格 grid minor命令使用更细化的网格;,box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态
11、之间进行切换。,举例: x=linspace(-5,5,100); y=x.4+22*x.2-6*x+10; plot(x,y) grid on box on,4. 图形保持 一般情况下,绘图命令每执行一次就刷新当前图形窗 口,图形窗口原有图形将不复存在。若希望在已存在的图 形上再继续添加新的图形,可使用图形保持命令hold。 hold on/off命令控制是保持原有图形还是刷新原有图形, 不带参数的hold命令在两种状态之间进行切换。它们一般是 成对出现的。,5.1 二维图形,5.1.2 绘制图形的辅助操作,例:用图形保持功能在同一坐标内绘制曲线y=2e-0.5xsin(2x)及其包络线。
12、程序如下: x=(0:pi/100:2*pi); y1=2*exp(-0.5*x)*1,-1; y2=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y1,b:); axis(0,2*pi,-2,2); %设置坐标 hold on; %设置图形保持状态 plot(x,y2,k); legend(包络线,包络线,曲线y); hold off; %关闭图形保持 grid %网格线控制,5.1 二维图形,5.1.2 绘制图形的辅助操作,5. 图形窗口的分割(绘制子图形),在缺省情况下,一个图形窗口中只有一个坐标轴,使用subplot函数可以在一个图形窗口上绘制多个图形,其调用格
13、式为: subplot(m,n,p) 功能:将图形窗口分成m*n个子窗口并把第p个子窗口作为当前窗口。子窗口的排列顺序为从左上角开始按行排列。,例:在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。 程序如下: x=linspace(0,2*pi,60); y=sin(x); z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); plot(x,y);title(sin(x); axis (0,2*pi,-1,1); subplot(2,2,2); plot(x,z);title(cos(
14、x); axis (0,2*pi,-1,1); subplot(2,2,3); plot(x,t);title(tangent(x); axis (0,2*pi,-40,40); subplot(2,2,4); plot(x,ct);title(cotangent(x); axis (0,2*pi,-40,40);,对图形窗口灵活分割。请看下面的程序。 x=linspace(0,2*pi,60); y=sin(x);z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); %选择22个区中的1号区 st
15、airs(x,y);title(sin(x)-1);axis (0,2*pi,-1,1); subplot(2,1,2); %选择21个区中的2号区 stem(x,y);title(sin(x)-2);axis (0,2*pi,-1,1); subplot(4,4,3); %选择44个区中的3号区 plot(x,y);title(sin(x);axis (0,2*pi,-1,1); subplot(4,4,4); %选择44个区中的4号区 plot(x,z);title(cos(x);axis (0,2*pi,-1,1); subplot(4,4,7); %选择44个区中的7号区 plot(x
16、,t);title(tangent(x);axis (0,2*pi,-40,40); subplot(4,4,8); %选择44个区中的8号区 plot(x,ct);title(cotangent(x);axis (0,2*pi,-40,40);,1. 其他形式的线性直角坐标图 在线性直角坐标系中,其他形式的图形有条形 图、阶梯图、杆图和填充图等,所采用的函数分 别是: bar(x,y,选项) stairs(x,y,选项) stem(x,y,选项) fill(x1,y1,选项1,x2,y2,选项2,),5.1 二维图形,5.1.3 绘制二维图形的其他函数,例:分别以条形图、填充图、阶梯图和杆图
17、形式绘制曲线y=2e-0.5x。 程序如下: x=0:0.35:7; y=2*exp(-0.5*x); subplot(2,2,1);bar(x,y,g); title(bar(x,y,g);axis(0,7,0,2); subplot(2,2,2);fill(x,y,r); title(fill(x,y,r);axis(0,7,0,2); subplot(2,2,3);stairs(x,y,b); title(stairs(x,y,b);axis(0,7,0,2); subplot(2,2,4);stem(x,y,k); title(stem(x,y,k);axis(0,7,0,2);,5.
18、1 二维图形,5.1.3 绘制二维图形的其他函数,1. 其他形式的线性直角坐标图 bar(x,y,选项) 说明:x必须为向量,按x中指定的位置绘制y中每一元素的条形。当y为矩阵时,bar绘制的条形图以分组group或叠加stacked的形式表现,矩阵中每一行的元素绘制在一组中,每一列元素绘制在每组中相应的位置上(即同样颜色的条形表示同一列数据)。x向量的个数与y矩阵的行数相等。,例:绘制指定x坐标的条形图。 程序如下: x=1 2 4 7 10; y=9 8 6;2 5 8;6 2 9;5 8 7;9 4 2; subplot(1,2,1) bar(x,y) subplot(1,2,2) ba
19、r(x,y,stack),5.1 二维图形,5.1.3 绘制二维图形的其他函数,2极坐标图 polar函数用来绘制极坐标图,其调用格式为: polar(theta,rho,选项) 其中theta为极坐标极角,rho为极坐标半径,选项的内容与plot函数相似。 例:绘制=sin(2)cos(2)的极坐标图。 程序如下: theta=0:0.01:2*pi; rho=sin(2*theta).*cos(2*theta); polar(theta,rho,k);,3对数坐标图形 MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为: semilogx(x1,y1,选项1,x2,y2,选项2,
20、) semilogy(x1,y1,选项1,x2,y2,选项2,) loglog(x1,y1,选项1,x2,y2,选项2,) 说明:三者坐标轴的选取不同。semilogx函数使用半对数坐标,x轴为常用对数刻度,而y轴仍保持线性刻度。semilogy函数也使用半对数坐标,y轴为常用对数刻度,而x轴仍保持线性刻度。loglog函数使用全对数坐标,x,y轴均采用常用对数刻度。,5.1 二维图形,5.1.3 绘制二维图形的其他函数,例:绘制y=10x2的对数坐标图并与直角线性坐标图进行比较。 程序如下: x=0:0.1:10; y=10*x.*x; subplot(2,2,1);plot(x,y); t
21、itle(plot(x,y);grid on; subplot(2,2,2);semilogx(x,y); title(semilogx(x,y); grid on; subplot(2,2,3);semilogy(x,y); title(semilogy(x,y); grid on; subplot(2,2,4);loglog(x,y); title(loglog(x,y);grid on;,4. 其他形式的图形 MATLAB提供的绘图函数还有很多,例如,用来表示各元 素占总和的百分比的饼图。调用格式: pie(x):使用x中的数据绘制饼图,x中的每一元素用饼图中 的一个扇区表示。 pie(
22、x,explode):将一些扇区从饼图中分离出来,explode为 一个与x尺寸相同的矩阵,其非零元素所对应的x矩 阵中的元素从饼图中分离出来。,5.1 二维图形,5.1.3 绘制二维图形的其他函数,例:绘制图形 (1)某次考试优秀、良好、中等、及格、不及格的人数分别为:7,17,23,19,5,试用饼图作成绩统计分析。 (2)将不及格的人数从图中分离出来显示。 程序如下: subplot(1,2,1); pie(7,17,23,19,5); title(饼图);legend(优秀,良好,中等,及格,不及格); subplot(1,2,2); p=0 0 0 0 1; pie(7,17,23,
23、19,5,p);,5.2 三维图形,最基本的三维图形函数为plot3。它与plot函数用法十分相 似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,xn,yn,zn,选项n) 说明:其中每一组x,y,z组成一组曲线的坐标参数,选项的 定义和plot函数相同。当x,y,z是同维向量时,则x,y,z对应 元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z 对应列元素绘制三维曲线,曲线条线等于矩阵列数。,5.2.1 绘制三维曲线图的基本函数,例:绘制空间曲线。 程序如下: t=0:pi/50:2*pi; x=8*cos(t); y=4*sqrt(2)*s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 处理 功能
![提示](https://www.31doc.com/images/bang_tan.gif)
链接地址:https://www.31doc.com/p-2499483.html