📄 buttonmotion_callback.m
字号:
function buttonmotion_callback
%---------获得句柄-------------
figures=get(0,'userdata');
handles=get(figures.FI,'userdata');
%---------更改单位-------------
bkunitFI=get(figures.FI,'unit');
bkunitap=get(handles.ap,'unit');
bkunitcp=get(handles.cp,'unit');
set(figures.FI,'unit','points');
set(handles.ap,'unit','points');
set(handles.cp,'unit','points');
%-------确定移动范围---------
ap_pos=get(handles.ap,'pos');
ap_x=ap_pos(1);ap_y=ap_pos(2);ap_wid=ap_pos(3);ap_hig=ap_pos(4);
cp_pos=get(handles.cp,'pos');
cp_x=cp_pos(1);cp_y=cp_pos(2);cp_wid=cp_pos(3);cp_hig=cp_pos(4);
ylim=[-(ap_hig-cp_hig) 0];
xlim=[-(ap_wid-cp_wid) 0];
%---------移动图形------------
lastpoint=get(handles.ep,'userdata');
currentpoint=get(figures.FI,'currentpoint');
motion=currentpoint-lastpoint;
ap_pos=get(handles.ap,'pos');
newpoint=ap_pos(1:2)+motion;
if newpoint(1)>=xlim(1) & newpoint(1)<=xlim(2)
ap_pos(1)=ap_pos(1)+motion(1);
set(handles.ap,'pos',ap_pos);
%redraw(handles.ax);
end
if newpoint(2)>=ylim(1) & newpoint(2)<=ylim(2)
ap_pos(2)=ap_pos(2)+motion(2);
set(handles.ap,'pos',ap_pos);
%redraw(handles.ax);
end
%-------还原单位,存贮数据------------
set(figures.FI,'unit',bkunitFI);
set(handles.ap,'unit',bkunitap);
set(handles.cp,'unit',bkunitcp);
set(handles.ep,'userdata',currentpoint);
%--------移动slider----------
set(handles.uv,'userdata',0);%0标识滚动条value的被动改变
set(handles.uh,'userdata',0);
ap_pos=get(handles.ap,'pos');
ap_x=ap_pos(1);ap_y=ap_pos(2);ap_wid=ap_pos(3);ap_hig=ap_pos(4);
cp_pos=get(handles.cp,'pos');
cp_x=cp_pos(1);cp_y=cp_pos(2);cp_wid=cp_pos(3);cp_hig=cp_pos(4);
if newpoint(1)>=xlim(1) & newpoint(1)<=xlim(2)
addw=ap_wid-1;
value=-ap_x/addw*(get(handles.uh,'Maximum')-get(handles.uh,'VisibleAmount'));
value=round(value);
set(handles.uh,'value',value);
end
if newpoint(2)>=ylim(1) & newpoint(2)<=ylim(2)
addh=ap_hig-1;
value=(1+ap_y/addh)*(get(handles.uv,'Maximum')-get(handles.uv,'VisibleAmount'));
value=round(value);
set(handles.uv,'value',value);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -