2012-09-21 14 views
6

Ich möchte ein Programm in Matlab mit GUI haben, bei der Ausführung des Programms kann der Benutzer alle Dinge mit der Maus auf die Achsen in der GUI zeichnen, und ich möchte das erstellte Bild in einer Matrix speichern. Wie kann ich das tun?Zeichnen mit der Maus auf der GUI in Matlab

Antwort

8

Endlich finde ich einen guten Code und ich habe einige Teile für die Anpassung für mich verändert.

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','') 
+0

Wie verwende ich diese Funktion zum Zeichnen? – mikeglaz

3

Die Funktion ruft die Koordinaten von Mausklicks innerhalb einer Figur ab. Sie können diese als Punkte einer Linie, eines Polygons usw. verwenden.

Wenn dies nicht Ihren Anforderungen entspricht, müssen Sie beschreiben, was genau Sie vom Benutzer erwarten.

für Freihandzeichnen könnte dies nützlich sein:

http://www.mathworks.com/matlabcentral/fileexchange/7347-freehanddraw

+0

Ich habe die Entwicklung eines Programms für den Charakter erkennen, dass die Benutzer Zeichnung, so sollte der Benutzer zu zeichnen alphanumerischen Zeichen können: Mit dieser Art und Weise kann der Benutzer anythings in den Achsen mit Maus. –

+0

Siehe meine Bearbeitung oben. –