Aufgabe 4.4 – Dragbox, Auswahl einer Position im Plot

 

Schreiben Sie eine Funktion pos=dragbox(), die nach einem Mausklick in eine 2D-Abbildung ein Rechteckfenster erzeugt, mit welchem ein beliebiger Bildbereich ausgewählt werden kann. Die linke untere Ecke des Auswahlbereichs wird dabei durch den Mausklick selbst fixiert, die rechte obere Ecke des Auswahlbereichs wird durch Ziehen mit festgehaltener Maustaste bestimmt. Nach dem Loslassen der Maustaste werden die Koordinaten des Rechteckbereiches in der Variablen pos zurückgegeben. Während der Aktion soll der aktuelle Mauspointer durch ein Fadenkreuz ersetzt werden. (Hinweis: Verwenden Sie zur Erzeugung des Rechteckfensters die Funktion rbbox()!)

Beispiel:

>> plot(randn(1,200))
>> pos=dragbox;

Lösung

function pos=dragbox
	% pos=dragbox
	% adds dragbox to current figure and returns
	% coordinates of final rectangle in pos
	currentpointer=get(gcf,'pointer'); % save current pointer
	set(gcf,'pointer','fullcrosshair') % activate crosshair
	waitforbuttonpress; % wait for mouse click
	pos=rbbox; % drag box
	set(gcf,'pointer',currentpointer) % reset pointer
end