マウス ポインターを使用してグラフの階段モデルを移動する必要があります。より具体的には、マウス ポインターを使用して水平方向の矢印マークで示されている水平プロットを移動すると、隣接するレイヤーも対応する移動する水平線と共に移動する必要があります。 ..同様に垂直軸..これをmatlabで行うにはどうすればよいですか。親切に私を助けて..
以下に記述されたコードはプロットを完全に移動しますが、他の線を邪魔することなく正確な線 (階段プロットの垂直/水平) を移動する必要があります。親切に私を助けて...
`
loglog(handles.axes1,a,b,'r')
hold on
% h=loglog(handles.axes1,x,y,'w')
h=stairs(handles.axes1,x,y,'w')
set(h,'ButtonDownFcn',@startmovit);
gui = get(gcf,'UserData');
drawnow
set(gcf,'windowbuttonmotionfcn','')
set(gcf,'windowbuttonupfcn','')
function startmovit(src,evnt)
% Unpack gui object
gui = get(gcf,'UserData');
% Remove mouse pointer
set(gcf,'PointerShapeCData',nan(16,16))
set(gcf,'Pointer','custom');
% Set callbacks
gui.currenthandle = src;
thisfig = gcbf();
set(thisfig,'WindowButtonMotionFcn',@movit)
set(thisfig,'WindowButtonUpFcn',@stopmovit);
% Store starting point of the object
gui.startpoint = get(gca,'CurrentPoint')
set(gui.currenthandle,'UserData',{get(gui.currenthandle,'XData') get(gui.currenthandle,'YData')});
% Store gui object
set(gcf,'UserData',gui);
function movit(src,evnt)
% Unpack gui object
gui = get(gcf,'UserData');
try
if isequal(gui.startpoint,[])
return
end
catch
end
% Do "smart" positioning of the object, relative to starting point...
pos = get(gca,'CurrentPoint')-gui.startpoint
XYData = get(gui.currenthandle,'UserData')
% set(gui.currenthandle,'XData',XYData{1} + pos(1,1))
% set(gui.currenthandle,'YData',XYData{2} + pos(1,2))
set(gui.currenthandle,'XData',XYData{1} + pos(1,1))
set(gui.currenthandle,'YData',XYData{2} + pos(1,2))
% dx=XYData
% dy=XYData
%
% h=findobj(allchild(gca),'selected','on')
% set(h,'Xdata',get(h,'Xdata')+dx,'Ydata',get(h,'Ydata')+dy)
outData1 = get(gui.currenthandle,'XData')'
outData2 = get(gui.currenthandle,'YData')
% newea=outData1
handles = guidata(gcf);
drawnow;
% Store gui object
set(gcf,'UserData',gui);
function stopmovit(src,evnt)
% Clean up the evidence ...
thisfig = gcbf();
gui = get(gcf,'UserData');
set(gcf,'Pointer','arrow');
set(thisfig,'WindowButtonUpFcn','');
set(thisfig,'WindowButtonMotionFcn','');
drawnow
set(gui.currenthandle,'UserData','')
set(gcf,'UserData',[])
`