function rajzol(Xinit,Yinit,Max_Time,b,wk,wb,X,Y,Z,contents,egyenlet_be,energia_be,handles)
tinit = 0;
% x=-10:0.05:10;
% y=-4:0.05:4;
% [X,Y] = meshgrid(x,y); %hálót készít x,y vektorok alapján (az energiák kiszámításához az adott pontokban)
%  
% %GUI-ról beveszem az adatokat
%  Xinit=str2double(cellstr(get(handles.kezdx,'String'))); %szöveget beveszem az ablakból és számmá alakítom
%  Yinit=str2double(cellstr(get(handles.kezdy,'String')));
%  Max_Time=str2double(get(handles.tmax,'String'));
%  b=str2double(cellstr(get(handles.csillapit,'String')));
%  wk=str2double(cellstr(get(handles.rezonans_wk,'String')));
%  wb=str2double(cellstr(get(handles.rezonans_wb,'String')));
%  
%  contents = cellstr(get(handles.egyenletvalaszto,'String')); %szöveget beveszem az ablakból
%  egyenlet_be=contents{get(handles.egyenletvalaszto,'Value')}; %adott sorát nézem
%  
%  contents = cellstr(get(handles.energiavalaszto,'String'));
%  energia_be=contents{get(handles.energiavalaszto,'Value')};
%  
%egyenletek: melyiket jelöltem a GUI-n, attól függ melyik diffegyenletet számolom
if strcmp(egyenlet_be, 'ddx+x=0')
    egyenlet=@(t, xy) [xy(2); -xy(1)]; % LC kör, alap rugó egyenlet, stabil egyensúlyi pálya
elseif strcmp(egyenlet_be, 'ddx+b*dx+x=0')
    egyenlet=@(t, xy) [xy(2); -b*xy(2)-xy(1)]; %RLC kör, rugó csillapítás, lecseng
elseif strcmp(egyenlet_be, 'ddx+x=cos(wk*t)')
    egyenlet=@(t, xy) [xy(2); -xy(1)+cos(wk*t)]; %más gerjesztés, rezonáns rugó?, összetett periódus
elseif strcmp(egyenlet_be, 'ddx+wb*x=cos(t)')
    egyenlet=@(t, xy) [xy(2); -wb*xy(1)+cos(t)]; % rugó ???, összetett periódus
elseif strcmp(egyenlet_be, 'ddx+b*dx+x=cos(t)')
    egyenlet=@(t, xy) [xy(2); -b*xy(2)-xy(1)+cos(t)]; % RLC kör vagy csillapított rugó gerjesztéssel, stabil priodikus pályára áll be tranziens után
elseif strcmp(egyenlet_be, 'ddx+sin(x)=0')
    egyenlet=@(t, xy) [xy(2); -sin(xy(1))]; %inga (hajóhinta) alap egyenlet
elseif strcmp(egyenlet_be, 'ddx+b*dx+sin(x)=0')
    egyenlet=@(t, xy) [xy(2); -b*xy(2)-sin(xy(1))]; % inga csillapítással, lecseng
elseif strcmp(egyenlet_be, 'ddx+b*dx+sin(x)=cos(t)')
    egyenlet=@(t, xy) [xy(2); -sin(xy(1))-b*xy(2)+cos(t)]; %inga gerjesztéssel és csillapítással, káosz, érzékeny függés a kezdeti értékektõl
end
[t, xy]=ode45(egyenlet, [tinit Max_Time], [Xinit; Yinit]); %diffegy megold az adott egyenlettel

%ábrázolás
plot(handles.xyplot, xy(:,1), xy(:,2), 'b'); %x-y ábrázolás
hold(handles.xyplot, 'on');
if ~strcmp(energia_be, 'nincs')  %kiválasztom, melyik energia függvényt használom
  if strcmp(energia_be, 'rugo')
    Z= 0.5.*Y.^2+0.5*X.^2;
  elseif strcmp(energia_be, 'inga')
    Z= 0.5.*Y.^2-cos(X)+1;
  end
  energiaszintek=[0, 0.1 0.25, 0.5, 1, 1.4, 2, 2.4, 3, 4]; %ezeket az energia szintvonalakat ábrázolom
  contour(handles.xyplot, X,Y,Z, energiaszintek); %energia szintvonalak
end
xlabel(handles.xyplot, 'x');
ylabel(handles.xyplot, 'y');
hold(handles.xyplot, 'off');

plot(handles.typlot, t, xy(:,2), 'b'); %x-t ábrázolás
xlabel(handles.typlot,'t');
ylabel(handles.typlot,'y');

plot(handles.xtplot, xy(:,1), t, 'b'); %t-y ábrázolás
xlabel(handles.xtplot,'x');
ylabel(handles.xtplot,'t');

plot3(handles.xytplot, xy(:,1), xy(:,2), t, 'b'); %x-y-t ábrázolás
xlabel(handles.xytplot,'x');
ylabel(handles.xytplot,'y');
zlabel(handles.xytplot,'t');
