Pakiety numeryczne Graphical User Interface Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.

Slides:



Advertisements
Podobne prezentacje
Programowanie w języku Visual Basic
Advertisements

WŁASNOŚCI FUNKCJI LINIOWEJ
Temat: Ruch jednostajny
Edycja mapy cyfrowej PowerDraft.
PROGRAMOWANIE STRUKTURALNE
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Arkusz kalkulacyjny FORMUŁY I WYKRESY
WŁASNOŚCI FUNKCJI LINIOWEJ
Excel Wstęp do laboratorium 3..
Menu Tabela program Microsoft Word
Excel Wykład 3.. Importowanie plików tekstowych Kopiuj – wklej Małe pliki Kolumny oddzielone znakiem tabulacji Otwieranie/importowanie plików tekstowych.
Podstawy tworzenia wykresów
Edytor Vi.
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Formatowanie tabel. Formatowanie warunkowe. Wstawianie funkcji.
Podstawy informatyki 2013/2014
EDYTOR GRAFIKI "PAINT" Prezentacja ma na celu zapoznanie uczniów z podstawowymi funkcjami edytora grafiki Paint.
ARKUSZ KALKULACYJNY EXCEL wiadomości wstępne
Spheroidator coded by Adam Piechna
Materiały pochodzą z Platformy Edukacyjnej Portalu
MS Office MS PowerPoint 2007
Dofinansowano ze środków Ministra Kultury i Dziedzictwa Narodowego
Excel Wykresy – różne typy, wykresy funkcji.
ARKUSZ KALKULACYJNY EXCEL wykresy
Informatyka +.
prezentacja multimedialna
Ruch jednostajny prostoliniowy i jednostajnie zmienny Monika Jazurek
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
SAMOUCZEK PRZYKŁAD ZASTOSOWANIA PROGRAMU DO MODELOWANIA TARCZ.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Ruch jednowymiarowy Ruch - zmiana położenia jednych ciał względem innych, które nazywamy układem odniesienia. Uwaga: to samo ciało może poruszać się względem.
Polecenie chmod change mode - zmiana atrybutu. chmod [opcje] uprawnienia plik Opis klas użytkowników u - użytkownik (user) g - grupa (group) o - inni.
Pakiety numeryczne Wprowadzenie Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Optymalizacja
Podstawy informatyki Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Pakiety numeryczne Tablice: tworzenie, indeksowanie, wymiary Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Interpolacja i aproksymacja
Pakiety numeryczne Wykresy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Wielomiany Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Tworzenie wykresów część I
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Tworzenie wykresów część II Tworzenie wykresu domyślnego Modyfikacja wykresów Pasek narzędzi Wykres.
Podstawy informatyki Funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Pakiety numeryczne Skrypty, funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Podstawy informatyki Struktury Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Szablony funkcji Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
Podstawy informatyki Operatory rzutowania Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały.
Podstawowe zadania w programie Excel 2010 Klasa 2 TOR.
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Do czego służy arkusz kalkulacyjny, jego budowa
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Edytor tekstu Word – możliwości graficzne
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Pakiety numeryczne Równania różniczkowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
 Cele operacyjne:  Uczeń:   doskonali:   · zasady tworzenia tabeli;  · sposoby formatowania tekstu w programie Word;  · umiejętność wyrównania.
Wykład 4 Dr Aneta Polewko-Klim
Wykład 3 Dr Aneta Polewko-Klim
Przykładowe zadanie egzaminacyjne.
Obliczenia w Matlabie Tablice
Obliczenia inżynierskie w Matlabie
Wprowadzenie do edytorów tekstu.
Obliczenia w Matlabie Interpolacja i aproksymacja
Wyższa Szkoła Ekologii i Zarządzania
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Język C++ Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Obliczenia w Matlabie Analiza statystyczna
Obliczenia w Matlabie Obliczenia symboliczne
Zapis prezentacji:

Pakiety numeryczne Graphical User Interface Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania

Tworzenie GUI >> guide

Ustawienia GUI Resize behavior: Non-resizable Proportional Other (Use ResizeFcn)

Funkcje callbacks GUI Poszczególne funkcje są wywoływane w momencie: CreateFcn – tworzenia GUI CloseRequestFcn – próby zamknięcia GUI DeleteFcn – zamykania GUI ResizeFcn – zmiany rozmiarów GUI ButtonDownFcn – wciśnięcia klawisza myszki WindowButtonDownFcn – j.w. WindowButtonUpFcn – zwolnienia klawisza myszki WindowButtonMotionFcn – ruchu myszki nad GUI WindowScrollWheelFcn – obrotu kółkiem myszki KeyPressFcn – wciśnięcia klawisza WindowKeyPressFcn – j.w. KeyReleaseFcn – zwolnienia klawisza WindowKeyReleaseFcn – j.w. Pozostałe funkcje: Callback – akcja odpowiednia do elementu SelectionChangeFcn – zmiana wyboru dla grupy elementów RadioButton CellEditCallback – zmiany wartości komórki w tabeli CellSelectionCallback – wyboru komórki w tabeli

Argumenty każdej funkcji callback hObject – uchwyt do obiektu (u nas do firuge1) eventdata – struktura zawierająca informacje o zdarzeniu towarzyszącym wywołaniu funkcji (zawartość zależna od konkretnej funkcji) handles – struktura zawierająca uchwyty do wszystkich obiektów

GUI1.fig Położenie kursora (współrzędna x) Położenie kursora (współrzędna y) Przyciśnięty klawisz myszki Przyciśnięty klawisz Przyciśnięty klawisz modyfikujący Znak wynikowy Ruch kółkiem myszki

GUI1.m function figure1_WindowButtonMotionFcn(hObject, eventdata, handles) pozycja_myszki=get(hObject,'CurrentPoint'); set(handles.text1,'String',num2str(pozycja_myszki(1))); set(handles.text2,'String',num2str(pozycja_myszki(2))); function figure1_WindowButtonDownFcn(hObject, eventdata, handles) ktory_przycisk=get(hObject,'SelectionType'); if strcmp(ktory_przycisk,'normal') set(handles.text3,'String','LEWY'); elseif strcmp(ktory_przycisk,'extend') set(handles.text3,'String','ŒRODKOWY'); elseif strcmp(ktory_przycisk,'alt') set(handles.text3,'String','PRAWY'); else set(handles.text3,'String','PODWÓJNE'); end Parametr CurrentPoint to dwuelementowy wektor zawierający współrzędne kursora Parametr String zawiera napis Funkcja num2str zamienia liczbę na napis Parametr SelectionType zawiera informację który przycisk myszki został wciśnięty Funkcja strcmp porównuje dwa napisy normallewy extendśrodkowy altprawy openpodwójne kliknięcie

GUI1.m function figure1_WindowButtonUpFcn(hObject, eventdata, handles) set(handles.text3,'String',''); function figure1_WindowKeyPressFcn(hObject, eventdata, handles) set(handles.text4,'String',eventdata.Key); set(handles.text5,'String',eventdata.Modifier); set(handles.text6,'String',eventdata.Character); function figure1_WindowKeyReleaseFcn(hObject, eventdata, handles) set(handles.text4,'String',''); set(handles.text5,'String',''); set(handles.text6,'String',''); function figure1_WindowScrollWheelFcn(hObject, eventdata, handles) if eventdata.VerticalScrollCount>0 set(handles.text7,'String','W DÓ£'); elseif eventdata.VerticalScrollCount<0 set(handles.text7,'String','W GÓRÊ'); end Przyciśnięty klawisz Przyciśnięty klawisz modyfikujący Znak wynikowy Wartość większa od 0 oznacza obrót w dół (zazwyczaj wartość jest równa 1 jednak może być większa) Analogicznie jak powyżej tylko wartość jest ujemna

GUI1 Pliki GUI1.fig oraz GUI1.m są pod adresem: home.agh.edu.pl/~szt/pliki/GUI1.zip

Zakres osi X, długość kroku GUI2.fig Wykres funkcjiWzór funkcji Wykres liniowy albo punktowy Styl linii Kształt markera Grubość linii Wielkość markera Pokaż linie siatki Zakończ program

GUI2.m function axes1_CreateFcn(hObject, ~, ~) x=-1:0.01:1; y=x; h=plot(x,y); set(hObject,'UserData',h); set(gca,'XLim',[-1 1]); function listbox1_CreateFcn(hObject, ~, ~) set(hObject,'String',{'x';'x.^2';'x.^3';'2.^x';'0.5.^x';'sin(x)';... 'cos(x)';'atan(x)';'sinh(x)';'cosh(x)';'exp(x)';'abs(x)'}); set(hObject,'Value',1); function uipanel1_CreateFcn(hObject, ~, ~) set(hObject,'Title','Styl'); function radiobutton1_CreateFcn(hObject, ~, ~) set(hObject,'String','Linia'); set(hObject,'Value',1); function radiobutton2_CreateFcn(hObject, ~, ~) set(hObject,'String','Punkty'); set(hObject,'Value',0); Niewykorzystane argumenty można zastąpić znakiem tylda Parametr UserData jest do naszej dyspozycji. Zapisujemy w nim uchwyt to wykresu Lista będzie zawierać wzory funkcji.

GUI2.m function popupmenu1_CreateFcn(hObject, ~, ~) set(hObject,'String',{'-';':';'-.';'--';'none'}); set(hObject,'Value',1); function popupmenu2_CreateFcn(hObject, ~, ~) set(hObject,'String',{'.';'o';'x';'+';'*';'s';'d';'v';'^';'>';'<';'p';'h';'none'}); set(hObject,'Value',1); set(hObject,'Visible','Off'); function slider1_CreateFcn(hObject, ~, ~) set(hObject,'Min',1); set(hObject,'Max',21); set(hObject,'SliderStep',[ ]); set(hObject,'Value',1); function slider2_CreateFcn(hObject, ~, ~) set(hObject,'Min',1); set(hObject,'Max',30); set(hObject,'SliderStep',[ ]); set(hObject,'Value',5); set(hObject,'Visible','Off'); popupmenu2 ma być niewidoczne Pierwsza składowa SliderStep to procentowa zmiana wartości przy kliknięciu na strzałkę suwaka, druga przy kliknięciu na suwak popupmenu1 i popupmenu2 będą zawierać możliwe style linii i kształty markera

GUI2.m function edit1_CreateFcn(hObject, ~, ~) set(hObject,'String','-1'); function edit2_CreateFcn(hObject, ~, ~) set(hObject,'String','0.01'); function edit3_CreateFcn(hObject, ~, ~) set(hObject,'String','1'); function checkbox1_CreateFcn(hObject, ~, ~) set(hObject,'String','Linie siatki'); set(hObject,'Value',0); function pushbutton1_CreateFcn(hObject, ~, ~) set(hObject,'String','Zamknij');

GUI2.m function listbox1_Callback(hObject, ~, ~) fs=get(hObject,'String'); f=fs{get(hObject,'Value')}; x=get(get(gca,'UserData'),'XData'); y=eval(f); set(get(gca,'UserData'),'YData',y); function popupmenu1_Callback(hObject, ~, ~) ls=get(hObject,'String'); set(get(gca,'UserData'),'LineStyle',ls{get(hObject,'Value')}); function popupmenu2_Callback(hObject, ~, ~) m=get(hObject,'String'); set(get(gca,'UserData'),'Marker',m{get(hObject,'Value')}); function slider1_Callback(hObject, ~, ~) set(get(gca,'UserData'),'LineWidth',get(hObject,'Value')); function slider2_Callback(hObject, ~, ~) set(get(gca,'UserData'),'MarkerSize',get(hObject,'Value')); Odczytujemy wzory wszystkich funkcji Do f zapisujemy wybrany (w postaci napisu) Z wykresy odczytujemy współrzędne x punktów Funkcja eval wykonuje polecenie zawarte w zmiennej f – tam jest wzór funkcji, a w zmiennej x są argumenty Zmieniamy współrzędne y punktów na wykresie Odczytujemy wszystkie style linii Ustawimy aktualnie wybrany Ustawiamy aktualną grubość linii

GUI2.m function uipanel1_SelectionChangeFcn(~, eventdata, handles) if eventdata.NewValue==handles.radiobutton1 set(handles.popupmenu1,'Visible','on'); set(handles.slider2,'Visible','off'); set(handles.popupmenu2,'Visible','off'); popupmenu1_Callback(handles.popupmenu1); set(get(gca,'UserData'),'Marker','none'); else set(handles.slider2,'Visible','on'); set(handles.popupmenu2,'Visible','on'); set(handles.popupmenu1,'Visible','off'); set(get(gca,'UserData'),'LineStyle','none'); popupmenu2_Callback(handles.popupmenu2); end function checkbox1_Callback(hObject, ~, ~) if get(hObject,'Value') grid on; else grid off; end Jeżeli wybierzemy wykres liniowy Ukrywamy/pokazujemy odpowiednie elementy GUI Uaktualniamy styl linii poprze „ręczne” wywołanie funkcji Callback dla popupmenu1 Usuwamy markery – zostaje sama linia Jeżeli wybierzemy wykres punktowy postępujemy analogicznie Dla wartości 1 pokazujemy linie siatki, dla zero chowamy.

GUI2.m function edit1_Callback(~, ~, handles) zmiana_zakresu(handles); function edit2_Callback(~, ~, handles) zmiana_zakresu(handles); function edit3_Callback(~, ~, handles) zmiana_zakresu(handles); function zmiana_zakresu(handles) a=str2double(get(handles.edit1,'String')); k=str2double(get(handles.edit2,'String')); b=str2double(get(handles.edit3,'String')); fs=get(handles.listbox1,'String'); f=fs{get(handles.listbox1,'Value')}; x=a:k:b; y=eval(f); set(get(gca,'UserData'),'XData',x); set(get(gca,'UserData'),'YData',y); set(gca,'XLim',[a b]); function pushbutton1_Callback(~, ~, ~) close(GUI2); Zmiana zakresu lub długości kroku wywołuje funkcję zmiana_zakresu Odczyt nowych wartości Odczyt aktualnego wzoru funkcji Generujemy wektor x Obliczamy wektor y Zmieniamy wykres Wciśnięcie przycisku zamyka program

GUI2 Pliki GUI2.fig oraz GUI2.m są pod adresem: home.agh.edu.pl/~szt/pliki/GUI2.zip

Prezentacja udostępniona na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0. Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na dowolne wykorzystywanie treści pod warunkiem wskazania autorów jako właścicieli praw do prezentacji oraz zachowania niniejszej informacji licencyjnej tak długo, jak tylko na utwory zależne będzie udzielana taka sama licencja. Tekst licencji dostępny jest na stronie: