Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Podstawy grafiki komputerowej
Tok studiów:
2018/2019
Kod:
JIS-1-407-s
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka Stosowana
Semestr:
4
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Osoba odpowiedzialna:
dr inż. Malinowski Janusz (malinowski@fis.agh.edu.pl)
Osoby prowadzące:
dr inż. Malinowski Janusz (malinowski@fis.agh.edu.pl)
Krótka charakterystyka modułu

W ramach wykładu przedstawione zostaną podstawy programowania grafiki rastrowej oraz podstawy programowania grafiki wektorowej zarówno 2D jak i 3D.

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W005 Student zna i rozumie podstawowe [*] pojęcia i opis matematyczny wykorzystywany w grafice rastrowej i wektorowej zarówno 2D jak i 3D oraz zna wynikające z tej wiedzy algorytmy.[*] - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu IS1A_W01, IS1A_W05, IS1A_W03 Aktywność na zajęciach,
Udział w dyskusji,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_W006 Student dysponuje aktualną wiedzą na temat wybranych bibliotek programistycznych wspomagających programowanie grafiki rastrowej oraz grafiki wektorowej 2D. IS1A_W04, IS1A_W02, IS1A_W03 Aktywność na zajęciach,
Udział w dyskusji,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
Umiejętności
M_U011 Student potrafi stworzyć prostą aplikację graficzna uruchamianą w systemie Windows oraz zaimplementować w niej najważniejsze algorytmy grafiki wektorowej 2D i grafiki rastrowej oraz podstawowe algorytmy grafiki 3D. IS1A_U06, IS1A_U05 Wykonanie ćwiczeń laboratoryjnych
M_U012 Student potrafi właściwie wykorzystać różne biblioteki programistyczne do stworzenia efektywnie działającej aplikacji graficznej. IS1A_U03, IS1A_U06, IS1A_U02, IS1A_U05, IS1A_U01 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne
M_K004 Student potrafi pracować w zespole programistycznym. Potrafi samodzielnie zdobyć odpowiednią wiedzę i umiejętności, niezbędne do realizacji jego części zadania zespołowego. IS1A_K01 Aktywność na zajęciach,
Projekt,
Wykonanie projektu
M_K005 Student umie przedstawić wykonany projekt w sposób komunikatywny i potrafi określić warunki jego komercjalizacji. IS1A_K03, IS1A_K01 Aktywność na zajęciach,
Projekt,
Wykonanie projektu
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W005 Student zna i rozumie podstawowe [*] pojęcia i opis matematyczny wykorzystywany w grafice rastrowej i wektorowej zarówno 2D jak i 3D oraz zna wynikające z tej wiedzy algorytmy.[*] - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu + - + + - - - - - - -
M_W006 Student dysponuje aktualną wiedzą na temat wybranych bibliotek programistycznych wspomagających programowanie grafiki rastrowej oraz grafiki wektorowej 2D. + - + + - - - - - - -
Umiejętności
M_U011 Student potrafi stworzyć prostą aplikację graficzna uruchamianą w systemie Windows oraz zaimplementować w niej najważniejsze algorytmy grafiki wektorowej 2D i grafiki rastrowej oraz podstawowe algorytmy grafiki 3D. - - + - - - - - - - -
M_U012 Student potrafi właściwie wykorzystać różne biblioteki programistyczne do stworzenia efektywnie działającej aplikacji graficznej. - - + + - - - - - - -
Kompetencje społeczne
M_K004 Student potrafi pracować w zespole programistycznym. Potrafi samodzielnie zdobyć odpowiednią wiedzę i umiejętności, niezbędne do realizacji jego części zadania zespołowego. - - + + - - - - - - -
M_K005 Student umie przedstawić wykonany projekt w sposób komunikatywny i potrafi określić warunki jego komercjalizacji. - - + + - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  1. Podstawowe pojęcia i definicje. Sprzęt i oprogramowanie. (4 godz.)

    Grafika wektorowa i rastrowa. Pojęcie rozdzielczości. Powiększanie obrazu. Reprezentacja kolorów. Kanały alfa. Odcienie szarości. Korekcja gamma. Karta, monitor, aparat, skaner, drukarka. Zarządzanie barwą i profile kolorystyczne. Programy graficzne – krótkie omówienie. Efektywne wykorzystanie grafiki – przykłady.

  2. Biblioteka SFML. (1 godz.).

    Przegląd możliwości. Dostępne funkcje. Przykładowe programy.

  3. Problem barwy i koloru. (3 godz.)

    Podstawy teorii koloru (prawa Grassmanna i Helmholtza). Definicja barwy (kolor, nasycenie, jaskrawość i jasność). Model CIE XYZ 1931. Wykres CIE xyY i jego własności. Przestrzenie barw, punkt bieli i macierze Bradforda. Modele CIE LUV, CIE LU’V’ i L*a*b*. System zarządzania barwą. Konwersja przestrzeni barw. Kalibracja monitora. Kalibracja barw według wzorca.

  4. Programowanie w środowisku wxWidgets. (3 godz.)

    Tworzenie okna, obsługa komunikatów i MessageBox. Kontrolki i ich obsługa. Obsługa menu i wykorzystanie timera. Okna dialogowe modalne i niemodalne. Funkcje rysujące. Pióro i pędzel. Operowanie czcionką. Obsługa bitmapy. Wykorzystanie schowka. Drukowanie.

  5. Podstawy grafiki 2D. (3 godz.)

    Reprezentacja obiektów 2D. Wykorzystanie funkcji ScanLine. Krzywe Beziera. Transformacje obiektów 2D.

  6. Podstawy grafiki 3D. (3 godz.)

    Reprezentacja obiektów 3D. Metody rzutowania. Transformacje obiektów 3D. Algorytmy linii zasłoniętych

  7. Podstawy grafiki rastrowej. (4 godz.)

    Zmiana rozmiarów. Przekształcenia geometryczne. Operacje na kolorach i jasności punktów. Filtry i przekształcenia splotowe. Filtry specjalne.

  8. Podstawowe formaty plików i danych. (3 godz.)

    Pliki w formacie BMP. Pliki w formacie JPG. Pliki w formacie RAW. Biblioteki do obsługi popularnych formatów. Dane osadzone EXIF. Dane osadzone IPTC.

  9. Biblioteka GD. (1 godz.)

    Obsługa obrazków PNG i JPG. Wykorzystanie antyaliasingu. Fonty TrueType i operacje na blokach. Praca w trybie True Color

  10. Biblioteka G2. (1 godz.)

    Podstawowe założenia biblioteki G2. Demonstracja możliwości biblioteki G2. Wykorzystania układu współrzędnych. Wykorzystanie podwójnego okna oraz zapis do pliku. Tworzenie pliku PostScriptowego

  11. Biblioteka LCMS (1 godz.)

    Zasady tworzenia aplikacji wykorzystujących system zarządzania barwą. Przykład aplikacji stosującej zarządzanie barwą oparty na wykorzystaniu biblioteki LCMS.

  12. Graficzna prezentacja danych. (2 godz.)

    Wykresy 2D i 3D. Fukcje typu f(x,y,z). Algorytmy poziomicujące. Pola wektorowe. Tworzenie obrazów stereoskopowych

Ćwiczenia laboratoryjne:
  1. SFML

    Efekty kształcenia:

    • student potrafi skompilować i uruchomić prosty program graficzny wykorzystujący bibliotekę SFML.

  2. Modele barw

    Efekty kształcenia:

    • student potrafi przeprowadzić konwersję barw pomiędzy modelami RGB, CMY, HSL i HSV
    • student umie zaprezentować model barw na kole barw lub w sześciokącie barw.

  3. Prosta grafika w wxDev-C++

    Efekty kształcenia:

    • student potrafi stworzyć prostą grafikę wykorzystując narzędzia wxWidgets,
    • student umie prawidłowo zastosować klasy wxImage, wxBitmap oraz wxDC,
    • student potrafi dobrać właściwy rodzaj kontekstu rysunkowego (DC- drawing contest) dostosowany do potrzeb
    • student używa właściwych metod ułatwiających pozycjonowanie grafiki w oknie

  4. Grafika 2D

    Efekty kształcenia:

    • student potrafi stworzyć wektorową reprezentacje obrazu dwuwymiarowego
    • student potrafi wykonać podstawowe transformacje obrazu wektorowego (obroty, przesunięcia, skalowanie itp.)
    • student potrafi prawidłowo przeliczać i skalować wartości współrzędnych pomiędzy różnymi obszarami (okienkowanie i obcinanie)

  5. Grafika 3D

    Efekty kształcenia:

    • student potrafi w praktyce zastosować mechanizm perspektywy
    • student umie wykorzystać przynajmniej jeden algorytm linii zasłoniętej
    • student wykonuje najważniejsze transformacje sceny trójwymiarowej (obroty, przesunięcia, skalowanie itp.)

  6. Grafika rastrowa

    Efekty kształcenia:

    • student potrafi zaimplementować przykładowe filtry punktowe i splotowe
    • student potrafi stworzyć histogram obrazu i wykonywać na nim podstawowe operacje (równoważenie, rozciąganie)

  7. Graficzna prezentacja danych

    Efekty kształcenia:

    • student poprawnie dobiera algorytm do danych, które ma zaprezentować
    • student potrafi zaimplementować wybrany algorytm w praktyce

  8. Biblioteka GFL i CImg

    Efekty kształcenia:

    • student potrafi połączyć biblioteki GFL, CImg oraz wxWidgets w jednym programie
    • student potrafi odpowiednie klasy i metody każdej z bibliotek w sposób optymalny

Ćwiczenia projektowe:
PROJEKT ZESPOŁOWY

Studenci w trzyosobowych zespołach realizują projekty. Każdy zespół otrzymuje do wykonania inny, przydzielony losowo projekt. W ramach projektu należy stworzyć działającą aplikację graficzną oraz szczegółową dokumentację wykonania projektu.

Efekty kształcenia:

  • student potrafi efektywnie wykorzystać podstawowe narzędzia programistyczne (kompilatory, wybrane biblioteki) do stworzenia prostej aplikacji graficznej
  • student potrafi współpracować w grupie realizując swoją część zadania
  • student potrafi stworzyć dokumentację zgodną z zadaną specyfikacją

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 152 godz
Punkty ECTS za moduł 6 ECTS
Udział w wykładach 30 godz
Samodzielne studiowanie tematyki zajęć 30 godz
Udział w ćwiczeniach laboratoryjnych 15 godz
Przygotowanie do zajęć 32 godz
Udział w ćwiczeniach projektowych 15 godz
Wykonanie projektu 30 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

W ramach laboratorium komputerowego studenci wykonują szereg ćwiczeń, za które mogą zdobyć określoną liczbę punktów. Procent uzyskanych punktów przeliczany jest zgodnie z Regulaminem Studiów AGH na ocenę końcową z laboratorium.
Projekt programistyczny oceniany będzie zgodnie ze szczegółowymi kryteriami zamieszczonymi na stronie przedmiotu oraz przedstawionymi na pierwszych zajęciach.

Ocena końcowa z modułu obliczana jest jako średnia ważona z powyższych ocen, przy czym ocena z laboratorium wchodzi do oceny końcowej z wagą 40%, a ocena z projektu z wagą 60%.

Wymagania wstępne i dodatkowe:
  • Znajomość podstaw algebry liniowej (operacje na wektorach i macierzach)
  • Znajomość podstaw statystyki (rozkłady jedno i dwuwymiarowe dyskretne i ich charakterystyki)
  • Podstawowa umiejętność programowania w C++
Zalecana literatura i pomoce naukowe:
  • Jankowski M., Elementy grafiki komputerowej. Warszawa, Wydawnictwo Naukowo-Techniczne, 1990.
  • Angell I.O., Wprowadzenie do grafiki komputerowej. Warszawa, Wydawnictwo Naukowo-Techniczne, 1988.
  • Pastuszak W., Barwa w grafice komputerowej. Warszawa, Wydawnictwo Naukowe PWN, 2000.
  • Foley J.D., Wprowadzenie do grafiki komputerowej. Warszawa, Wydawnictwo Naukowo-Techniczne, 1995.
  • Tarasiuk J., Wprowadzenie do grafiki komputerowej. Skrypt internetowy dostępny na stronie przedmiotu: http://home.agh.edu.pl/~tarasiuk/dydaktyka/index.php/skrypt
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Jakub KAMIŃSKI, Maciej ŚNIECHOWSKI, Sebastian WROŃSKI, Janusz MALINOWSKI, Jacek TARASIUK, Bone tissue engineering using combined additive manufacturing and microtomography with FEM verification , proc of 27th European conference on Biomaterials : 30 August – 3 September, Kraków, Poland, ESB 2015
Jakub KAMIŃSKI, Maciej ŚNIECHOWSKI, Sebastian WROŃSKI, Janusz MALINOWSKI, Jacek TARASIUK, Bone tissue engineering using combined additive manufacturing and microtomography with Finite Element Method verification, proc. Of Innovative technologies in biomedicine, 2nd international conference : October 12–14, 2015, Krakow, Poland
W. SIKORA, J. MALINOWSKI, Crowd behavior as an example of the evolution of a complex system – evacuation models proposal based on the symmetry analysis approach, Acta Physica Polonica. A 124 (2013) 1005–1012
Wiesława SIKORA, Janusz MALINOWSKI, Arkadiusz KUPCZAK, Model of skyscraper evacuation with the use of space symmetry and fluid dynamic approximation , proc. of 9th international conference on Parallel Processing and Applied Mathematics

Informacje dodatkowe:

Pod koniec semestru zorganizowane będą dodatkowe zajęcia w ramach pracowni komputerowej. Osoby z usprawiedliwioną nieobecnością będą mogły na nich odrobić brakujące zajęcia.

Osoby, które nie uzyskają zaliczenia pracowni komputerowej w regularnym terminie, ale uzyskają minimum 40% punktów, będą mogły również na zajęciach dodatkowych wykonać jedno zadanie uzupełniające za 12% punktów.

Osoby, które w regularnym terminie uzyskały mniej niż 40% punktów, lub po wykorzystaniu dodatkowego terminu mają mniej niż 50% punktów nie uzyskają zaliczenia.