1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
function varargout = KeyPressFcn(h, eventdata, handles, varargin)
P=load('parametres');
load('StructSignal');
CurrentChar = double( get(gcbf,'CurrentCharacter') );
if ~isempty(CurrentChar) & any( CurrentChar == [28 29 30 31] )
Xlim=get(handles.axes2,'XLim');
h_line=findobj(handles.axes2,'type','line','Color','b');%handle de ligne
h_line2=findobj(handles.axes2,'type','line','Color','r'); %définition de h_line3, caractérise le curseur principal
h_line3=findobj(handles.axes2,'type','line','Color','m');%définition de h_line3, caractérise le curseur double
%Anciennes valeurs du curseur:
X=get(h_line2(1),'XData');
Y=get(h_line2(1),'YData');
%Donnees de la courbe fréquentielle
Xdata=get(h_line(1),'XData');
Ydata=get(h_line(1),'YData');
ind=find(Xdata>=X);
i=ind(1);
if X<=1 %& ~isempty(i)
X=1;
switch CurrentChar
case 29 %--> seulement
delete(h_line(1));%on efface l'ancien curseur
subplot(handles.axes2);hold on;plot(Xdata(i+1),Ydata(i+1),'+r'); %affiche le curseur
h_line=findobj(handles.axes2,'type','line');
set(h_line(1),'MarkerSize',24);
set(handles.editx,'String',num2str(Xdata(i+1))); %affiche la coordonnee x
set(handles.edity,'String',num2str(Ydata(i+1))); %affiche la coordonnee y
end
elseif (X > 1) & (X < Xlim(2))
delete(h_line2(1));%on efface l'ancien curseur principal
delete(h_line3);
switch CurrentChar
case 28 %<--
subplot(handles.axes2);hold on;plot(Xdata(i-1),Ydata(i-1),'+r'); %affiche le curseur
h_line2=findobj(handles.axes2,'type','line','Color','r');
set(h_line2(1),'MarkerSize',24);
set(handles.editx,'String',num2str(Xdata(i-1))); %affiche la coordonnee x
set(handles.edity,'String',num2str(Ydata(i-1))); %affiche la coordonnee y
case 29 %-->
subplot(handles.axes2);hold on;plot(Xdata(i+1),Ydata(i+1),'+r'); %affiche le curseur
h_line2=findobj(handles.axes2,'type','line','Color','r');
set(h_line2(1),'MarkerSize',24);
set(handles.editx,'String',num2str(Xdata(i+1))); %affiche la coordonnee x
set(handles.edity,'String',num2str(Ydata(i+1))); %affiche la coordonnee y
case 30 %fleche haut pour aller vers droite avec double curseur
subplot(handles.axes2);hold on;plot(Xdata(i+1),Ydata(i+1),'+r'); %affiche le curseur
Xdouble=Xdata(2*i+2); %% définition du curseur double
Ydouble=Ydata(2*i+2);
plot(Xdouble,Ydouble,'+m'); %affiche le curseur double
h_line2=findobj(handles.axes2,'type','line','Color','r');
h_line3=findobj(handles.axes2,'type','line','Color','m');
%text(Xdouble,Ydouble, num2str([Xdouble;Ydouble]),'FontSize',11)
set(h_line2(1),'MarkerSize',24);
set(handles.editx,'String',num2str(Xdata(i+1))); %affiche la coordonnee x
set(handles.edity,'String',num2str(Ydata(i+1))); %affiche la coordonnee y
case 31 %fleche bas pour aller vers gauche avec double curseur
subplot(handles.axes2);hold on;plot(Xdata(i-1),Ydata(i-1),'+r'); %affiche le curseur
Xdouble=Xdata(2*i-2); %% définition du curseur double
Ydouble=Ydata(2*i-2);
Xtriple=Xdata(3*i-3); %% définition du curseur triple
Ytriple=Ydata(3*i-3);
Xquatruple=Xdata(4*i-4); %% définition du curseur quatruple
Yquatruple=Ydata(4*i-4);
plot(Xdouble,Ydouble,'+m'); %affiche le curseur double
plot(Xtriple,Ytriple,'+m'); %affiche le curseur double
plot(Xquatruple,Yquatruple,'+m');
h_line2=findobj(handles.axes2,'type','line','Color','r');
h_line3=findobj(handles.axes2,'type','line','Color','m');
%text(Xdouble,Ydouble, num2str([Xdouble;Ydouble]),'FontSize',11)
set(h_line2(1),'MarkerSize',24);
set(handles.editx,'String',num2str(Xdata(i-1))); %affiche la coordonnee x
set(handles.edity,'String',num2str(Ydata(i-1))); %affiche la coordonnee y
end
elseif X>=floor(Xlim(2)) %& ~isempty(i)
switch CurrentChar
case 30 %<-- seulement
delete(h_line(1));%on efface l'ancien curseur
subplot(handles.axes2);hold on;plot(Xdata(i-1),Ydata(i-1),'+r'); %affiche le curseur
h_line=findobj(handles.axes2,'type','line');
set(h_line(1),'MarkerSize',24);
set(handles.editx,'String',num2str(Xdata(i-1))); %affiche la coordonnee x
set(handles.edity,'String',num2str(Ydata(i-1))); %affiche la coordonnee y
end
%
end
end |
Partager