- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB实现图形交互式缩放的方法的研究
MATLAB实现图形交互式缩放的方法的研究
摘要:研究了MATLAB中GUI界面下以鼠标拖放交互方式实现图形缩放问题,分析了不同条件和要求下用MATLAB实现图形缩放的方法和具体算法,阐述了在MATLAB中人机交互操作的具体实现方法。
关键词:人机交互;缩放;区域选择;图形用户接口
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)33-7619-03
在实验中经常需要对获取的数据进行图形化分析,由于数据的时间分辨率高,绘制出来的数据细节难以观察,就需要对图形局部进行放大。实现图形用户界面下的交互式缩放就显得尤为重要。
1 MATLAB产生的图形
在使用MATLAB进行计算时,可能产生各种图形。图形数据的生成方式可分为由函数产生和由采样数据产生。由函数产生的图形数据是通过数学公式计算获得的。矢量图形的缩放不会导致图形失真,可以无限缩放。由采样数据产生的图形由于采样间隔的限制,图形放大到一定程度就会出现锯齿现象。对这类图形的缩放需要根据放大倍数分别采用不同的处理方法。MATLAB中绘图函数plot可以绘制上述两种方式产生的图形数据。如x和y是同样长度的矢量, plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。
2 MATLAB提供的缩放功能
MATLAB自身提供了缩放函数zoom。zoom可以根据指定的放大倍数对图形进行缩放。在MATLAB命令创建的图形窗口中还可以工具栏中的放大缩小工具对坐标轴中的进行缩放。对于矢量图形,这样操作不会有问题。但是遇到非矢量图形,i当放大倍数达到一定值时,图形会失真。要想保证图形放大不失真,就需要进行特殊处理。
3 图形缩放算法
对于矢量图形,由于数学方程确定了坐标点,对于任意给定的x,通过数学方程f(x)获得确定的值y与之对应。对于非矢量图形,没有确切的数学方程,对于给定的x,想要知道对于的值y,就需要进行插值运算。
已知离散点上的数据集,即已知在点集X上对应的函数值Y,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。
MATLAB中提供了多种一维插值方法:基于多项式的插值和基于快速傅里叶的插值。
一维多项式插值,具体的插值方法有:最近邻点插值、线性插值、三次样条插值、三次多项式插值。一维多项式插值通过函数interp1()实现。interp1()的一种调用格式如下:
yi=interp1(X, Y, xi, method)
method可以下列方法之一:‘nearest’:最近邻点插值;‘spline’:三次样条插值;‘linear’:线性插值;‘cubic’:三次多项式插值。
选择插值方法时需要考虑方法的执行速度、占用内存大小和获得数据的平滑度。在速度上,Nearest最快,然后是Linear再到Cubic,最慢的是Spline.但是精度和曲线的平滑度恰好相反,Nearest甚至不连续。系统默认的插值方法的是Linear。
一维快速傅里叶插值通过函数interpft()实现。interpft()用傅立叶变换把输入数据变换到频域,再用更多点的傅立叶逆变换,变换回时域,实现时域数据采样增加。interpft()的调用格式:y=interpft(x,n)。其中n为采样数。
4 MATLAB中图形交互操作的实现
MATLAB提供图形用户界面开发工具Guide(graphical user interface development environment)。在MATLAB的命令窗口输入“guide”命令启动图形编程界面。MATLAB的Gui对象支持键盘和鼠标事件。通过对事件进行响应而实现人机交互操作。在MATLAB中交互操作具体实现需要解决一下几个问题:鼠标位置获取;计算放大范围;提取范围内数据;插值计算。交互放大操作的流程图如图1所示。
4.1鼠标位置获取
MATLAB中的ginput函数可以接受鼠标和键盘输入。在坐标轴内部点击鼠标,即可获取鼠标所在点的坐标值。ginput提供了一个十字光标使我们能更精确的选择我们所需要的位置,并返回坐标值。ginput函数调用形式为:[x,y]=ginput(n)或[x,y]=ginput或[x,y,button]=ginput(...)。其中[x,y]=ginput(n)读取n个坐标,[x,y]=ginput无限读取坐标直到按下回车键,[x,y,button]=ginput(...)返回x和y的坐标,以及button值(1=左键,2=中,3=右)或者按键的ASCII码值。下面的代码实现鼠标位置的获取,并将两个点的位置存入数组中。
for i=1
您可能关注的文档
最近下载
- 2024年河北对外经贸职业学院单招职业适应性测试题库附答案.docx VIP
- 46 黎曼几何初步 [伍鸿熙,沈纯理,虞言林 著] 2014年版.pdf VIP
- 2025-2026学年黑龙江省哈尔滨市德强学校八年级(上)期中化学试卷(五四学制)(含答案).docx
- Axio Vert A1-Xcite使用简述_华兰生物-zgh201903——[蔡司精品].pdf VIP
- 《时速160公里动力集中动车组运用维修管理暂行办法》(2018)200.pdf VIP
- 提高路缘石安装施工一次合格率.docx VIP
- 检验科主任述职报告.pptx VIP
- 2026年河北对外经贸职业学院单招职业适应性测试题库附答案.docx VIP
- 蓝海华腾TS-K系列伺服驱动器使用说明书.pdf
- 《县委书记的榜样——焦裕禄》课文原文阅读 .pdf VIP
原创力文档


文档评论(0)