第3章MATLAB图形初步

Download Report

Transcript 第3章MATLAB图形初步

第3章 MATLAB图形初步
编者
Outline
3.1
 3.2
 3.3
 3.4
 3.5
 3.6

MATLAB图形窗口
二维图形的绘制
二维图形的修饰
三维图形的绘
图形的编辑
动画的制作
3.1 MATLAB图形窗口
MATLAB绘图函数和绘图工具的输出都显示在MATLAB命令窗口外的一
个图形窗口中,如图所示就是一个典型的MATLAB图形窗口。
图
MATLAB图形窗口
3.2 二维图形的绘制
1.基本绘图函数
MATLAB中绘制二维图形的基本函数。
2.子图的绘制
有时出于节省空间或对几个相似图形进行比较等目的,在同一个图形窗口中需要设置
多个坐标轴。MATLAB中实现这一目的的函数主要是subplot。运行结果图如示。
图
子图绘制
3.交互式绘图
在MATLAB中提供了几个与鼠标操作有关的命令,也就是交互式图形
命令,常用的有ginput和gtext。交互式绘图如图所示。
图
交互式绘图
3.3
二维图形的修饰
1.图形标注
图题标注
在MATLAB中,提供了函数title来实现图题标注,该函数的调用格式为:
坐标轴标注
函数xlabel、ylabel和zlabel分别用于在坐标轴的x轴、y轴和z轴标注,它们的使
用方法和title函数类似。
图
图题标注与坐标轴标注
图例标注
图例可以用来标注图形中不同颜色、线型的数据组的实际意义,用户可以使
用legend函数来添加图例,该函数的调用格式很多。
文本标注
文本可以标注在图形中的任何位置,包括坐标轴外的位置,MATLAB提供了两
个文本标注函数:gtext和text。
线条、箭头和图框标注
在图形中添加线条、箭头标注可以起到明确的指示作用,
而图框标注则能提高图形的美观程度,这几类元素的标注都可以通过annotation函数实现。
图
线条、箭头和图框标注
2 坐标轴的控制
设置坐标轴范围
在MATLAB中,设置坐标轴范围主要采用axis和xlim(或ylim、zlim)函数,
常用的调用格式为:
设置坐标轴显示方式
在MATLAB中,坐标轴的显示方式有很多,运行如图所示。
图
网格线和坐标框
坐标轴的不同显示方式
MATLAB中使用函数grid来显示网格线,坐标框可以由函数box显示。
3.4 三维图形的绘制
1.三维曲线图的绘制
维曲线图描述的是向量 沿着一条平面曲线变化时, 随之变化的情况。MATLAB中绘制三维曲线图
的函数主要是plot3,其运行结果如图所示。
图
三维曲线图的绘制
2. 三维网格图的绘制
在MATLAB中,用户可以使用mesh、meshc和meshz这三个函数创建网格图,其中mesh函数创建普
通的网格图,meshc函数创建带等高线的网格图,而meshz函数创建带“围裙”的网格图,它们的调用
格式完全一样,以mesh函数为例。运行结果如图所示。
图
Butterworth低通滤波器的三维网格图
3.三维曲面图的绘制
在MATLAB中,用户可以使用surf、surfc和surfl这三个函数来创建三维曲面图,其中surf函数是
绘制三维曲面图的基本指令,函数surfc绘制带有等高线的三维曲面图,而函数surfl可以控制光照效
果,surf和surfc函数的用法类似于mesh函数。运行结果如图所示。
图
不同绘图方式表现三维图形
3.5
图形的编辑
1.图形窗口编辑方式
MATLAB图形窗口除了用于显示绘图函数的结果,另外,它还提供了一个绘图工具(Plot Tool)组件,
如图所示。除了可以使用该绘图工具组件来编辑图形外,我们还可以将其保存为M文件,这样即可实现图形
自动化编程的过程。
图
绘图工具组件
2.图形句柄编辑方式
MATLAB在创建每一个图形对象时,都会为该对象分配惟一的一个数值,称为图形对象
句柄。由图形创建函数产生的每一个对象都是图形对象,包括图形窗口、坐标轴、线条、
曲面和文本等,这些对象按父对象和子对象组成层次结构。如图所示。
图
句柄图形对象层次结构
3.6
动画的制作
MATLAB中动画的制作主要有以下两种方式:
•电影动画:在保存多幅图像后以电影的形式播放出来,这种方式适用于获取一
幅图像时间较长的情况,用户可以在计算出所有图像后反复观察图像变化过程。
•实时动画:在图形窗口中不断地计算并画出图形,在当前图形窗口中只显示利
用当前参数计算所得的图片,这样看起来就具有动画效果了。这种方式适用于
获得图像时间较短的情况。
电影动画
MATLAB中,创建电影动画的过程主要分为以下2个步骤:
1)调用moviein函数对内存进行初始化(该步骤在MATLAB 5.3以上均可省略),创建一个足
够大的矩阵,使之能够容纳基于当前坐标轴大小的一系列指定的图形(此处称为帧)。
2)调用getframe函数生成每个帧。该函数可以捕捉动画帧,并保存到矩阵中。一般将该函
数放到for循环中得到一系列的动画帧。
运行结果如图所示。
图
制作莫比乌斯带的某一帧
实时动画
MATLAB中,创建擦除重绘动画的过程分为以下三步:
1)设置重绘对象的擦除模式。
2)在循环语句中使用set函数更改图形的xdata,ydata和zdata等坐标数据。
3)使用drawnow命令刷新屏幕或利用pause函数设置暂停时间。
运行结果如图所示。
图
实时动画
谢谢大家!