MATLAB绘制交互式图形
1.ginput函数
函数功能:来自鼠标或光标的图形输入语法 [x,y]=ginput(n) [x,y]=ginput [x,y,button]=ginput(...) 说明 ginput 提高当前坐标区中的交叉线以供您标识图窗中的点,从而使用鼠标定位光标。 图窗必须具有焦点,ginput 才能接收输入。如果它没有坐标区,将在第一次点击或按键时创建一个。 [x,y]=ginput(n) 使您能够从当前轴标识 n 个点并在 x 和 y 列向量中返回这些点的 x 和 y 坐标。 按 Return 键可在输入 n 个点之前终止输入。将 n 指定为正整数。 [x,y]=ginput 可收集无限多个点,直到您按 Return 键为止。 [x,y,button]=ginput(...) 返回 x 坐标、y 坐标以及按钮或键名称。button 是一个指示按了哪些鼠标 按键的整数向量(1 表示左键,2 表示中键,3 表示右键),或指示按了键盘上的哪些键的 ASCII 数字 向量。 点击某个坐标区会使该坐标区成为当前坐标区。即使您在调用 ginput 之前设置当前坐标区, 您点击坐标区的任何地方也会变为当前坐标区并且 ginput 返回相对于该坐标区的点。 如果您从多个坐标区上选择了点,则会相对于各坐标区原本所处的坐标系返回相应的结果。
2.gtext指令 gtext(arg) %用鼠标把字符串或者字符串元胞数组放置到图中作为文字说明。 %用户用鼠标确定其放置的位置,右击,字符串将被放置在紧靠十字中心的"第一象限"位置上。 %如果arg是单个字符串,单机一次即可;如果是多行字符串,单击一次只能将一行放置在图中。
3.zoom指令
函数功能:会出来一个类似放大镜的光标
放缩指令格式,指令格式
说明
在可变焦的当前图形上,可直接单击图形进行放大,也可长按鼠标左键括住需要放大的区域,右击即可进行图片的缩小。
4.实例1
程序clc; clear all; close all; x=-8*pi:pi/100:8*pi; y1=sin(x); y2=4*sin(x/4); plot(x,y1,"r-",x,y2,"k-"); legend("sin(x)","4sin(x/4)"); grid on; [x,y]=ginput(8); %在下方命令窗口输入[x,y],可看到刚刚取得n个点的坐标,这里是8个点
运行结果
5.实例2 clc; clear all; close all; figure; axis([0 10 0 10]); hold on x=[]; y=[]; n=0; disp("单击鼠标左键点取需要的点"); disp("单击鼠标右键点取最后一个点"); but=1; while but==1 [xi,yi,but]=ginput(1); plot(xi,yi,"bo") n=n+1; disp("单击鼠标左键点取下一个点"); x(n,1)=xi; y(n,1)=yi; end t=1:n; ts=1:0.1:n; xs=spline(t,x,ts); ys=spline(t,y,ts); plot(xs,ys,"r-"); hold off
运行结果
作 者 | 郭志龙
编 辑 | 郭志龙
校 对 | 郭志龙