Verfasst am: 02.03.2011, 23:45
Titel: Linie od Rechteck mittels Slider über Bild schieben
Hallo, bin Neuling in ML, brauche Starthilfe:
Will im Bild "axes1" irgend eine Linie oder Rechteck mittels Slider bewegen.
Bewegung soll vor Hintergrundbild stattfinden.
Mein Problem:
Nach Sliderverstellung malt er neue Line und lässt alte stehen.
Er soll aber alte Linie löschen und neue malen.
Mein Code im SliderY_CallBack:
Code:
% --- Executes on slider movement. function sliderY_Callback(hObject, eventdata, handles) % hObject handle to sliderY (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of % slider
set(gcf,'DefaultLineEraseMode','xor');
y = get(hObject,'value');
a = line([1500], [y+200 y+200],'Color','Green');
es ist besser wenn du dir den Handle von Linie merkst und nur die Position veränderst.
Code:
% --- Executes on slider movement. function sliderY_Callback(hObject, eventdata, handles) set(gcf,'DefaultLineEraseMode','xor');
y = get(hObject,'value');
a = getappdata(0,'a') ifisempty(a)
a = line([1500], [y+200 y+200],'Color','Green');
setappdata(0,'a',a) else set(a,'YData',[y+200 y+200]) end
Dennys Lösung ist gut. Ich würde den Handle der Linie in "handles" speichern, statt als ApplicationData im Root-Objekt, wo sich sie Namen überlappen können, falls man meherer Fenster mit der Linien-Verschiebungs-Funktion gleichzeitig geöffnet hat.
Gruß, Jan
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.