失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > matlab 鼠标画图 在matlab中使用鼠标在GUI上绘图

matlab 鼠标画图 在matlab中使用鼠标在GUI上绘图

时间:2023-01-25 15:46:20

相关推荐

matlab 鼠标画图 在matlab中使用鼠标在GUI上绘图

最后我找到了一个很好的代码,我已经为我自定义了一些部分.通过这种方式,用户可以使用鼠标在轴上绘制任何东西:

function userDraw(handles)

%F=figure;

%setptr(F,'eraser'); %a custom cursor just for fun

A=handles.axesUserDraw; % axesUserDraw is tag of my axes

set(A,'buttondownfcn',@start_pencil)

function start_pencil(src,eventdata)

coords=get(src,'currentpoint'); %since this is the axes callback, src=gca

x=coords(1,1,1);

y=coords(1,2,1);

r=line(x, y, 'color', [0 .5 1], 'LineWidth', 2, 'hittest', 'off'); %turning hittset off allows you to draw new lines that start on top of an existing line.

set(gcf,'windowbuttonmotionfcn',{@continue_pencil,r})

set(gcf,'windowbuttonupfcn',@done_pencil)

function continue_pencil(src,eventdata,r)

%Note: src is now the figure handle, not the axes, so we need to use gca.

coords=get(gca,'currentpoint'); %this updates every time i move the mouse

x=coords(1,1,1);

y=coords(1,2,1);

%get the line's existing coordinates and append the new ones.

lastx=get(r,'xdata');

lasty=get(r,'ydata');

newx=[lastx x];

newy=[lasty y];

set(r,'xdata',newx,'ydata',newy);

function done_pencil(src,evendata)

%all this funciton does is turn the motion function off

set(gcf,'windowbuttonmotionfcn','')

set(gcf,'windowbuttonupfcn','')

如果觉得《matlab 鼠标画图 在matlab中使用鼠标在GUI上绘图》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。