AiR - Informatyka 2
Zadanie na laboratorium

Tematem ćwiczenia będzie napisanie skryptu Tk pozwalającego wygodnie uruchamiać w środowisku okienkowym program do przetwarzania obrazów napisany we wcześniejszym zadaniu.

Przygotowanie do wykonania ćwiczenia

Przed rozpoczęciem ćwiczenia proszę zapoznać się z materiałami na temat pisania skryptów Tcl i Tk, oraz przykładowymi skryptami Tk zawartymi w slajdach do wykładu.

Proszę również zapoznać się i wypróbować demonstracyjny zestaw widgetów Tk znajdujący się na diablo w katalogu /opt/csw/lib/tk8.4/demos. Istniejący tam skrypt widget pozwala próbnie uruchamiać szereg gotowych skryptów, oraz przeglądać ich treść. W razie potrzeby szczegółowego zapoznania się z działaniem poszczególnych widgetów można przeczytać opis man odpowiedniego widgeta, np. man tk_getOpenFile, albo sięgnąć do literatury podanej na stronie kursu.

Przy wykonaniu zadania można korzystać ze źródeł dowolnych gotowych skryptów, na przykład skryptu text.tk przedstawionego na wykładzie. Jednak w przypadku użycia jakichś fragmentów kodu z takich przykładów trzeba to napisać w sprawozdaniu z ćwiczenia.

Zadanie do wykonania

Zadanie składa się z dwóch części. W pierwszej części należy rozszerzyć skrypt sumator.tk przedstawiony na wykładzie tak aby wyliczał on równanie x + y = z w obie strony, czyli potrafił obliczać wartości dowolnych ze zmiennych x, y, i z. Należy przycisk "Oblicz" zastąpić trzema oddzielnymi przyciskami "Oblicz-x" "Oblicz-y" i "Oblicz-z" i zaprogramować ich akcje tak, aby po ich naciśnięciu obliczały i ustawiały wartości odpowiednich suwaków i związanych z nimi zmiennych. Należy zwrócić uwagę na to, że przy przyjętych zakresach wartości zmiennych rozwiązanie równania wstecz nie zawsze może być możliwe, np. jeśli użytkownik ustawi x=55, z=25, i naciśnie "Oblicz-y". Jak powinien w takiej sytuacji zachować się nasz program?

W drugiej części zadania (właściwej) należy napisać skrypt Tk do interakcyjnego przetwarzania obrazów napisanym wcześniej programem. Skrypt Tk do uruchamiania programu splot powinien otworzyć normalne okienko wish'a i wyświetlić w nim wszystkie widgety niezbędne do wykonania zadania, zgodnie z poniższymi wymaganiami:

  1. przyciski umożliwiające wybranie plików z obrazem źródłowym i wynikowym przy użyciu funkcji Tk tk_getOpenFile i tk_getSaveFile (patrz przykład użycia w skrypcie text.tk)

  2. wybór operacji przetwarzania obrazu (można wykorzystać sposób wyboru opcji zademonstrowany w przykładzie radio.tk)

  3. przyciski do uruchamiania programu, i zakończenia pracy

  4. przyciski do wywoływania programu display na obrazie źródłowym i (oddzielnie) wynikowym, tymi samymi przyciskami można będzie również kasować wywołany program (napisany skrypt nie będzie korzystał z opcji -d programu)

Proszę nie zapomnieć o opracowaniu stylistycznym skryptu (układ graficzny, dobór nazw, komentarze).