Module also offered within study programmes:
General information:
Name:
Fundamentals of Computer Graphics
Course of study:
2018/2019
Code:
JIS-1-407-s
Faculty of:
Physics and Applied Computer Science
Study level:
First-cycle studies
Specialty:
-
Field of study:
Applied Computer Science
Semester:
4
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
dr inż. Malinowski Janusz (malinowski@fis.agh.edu.pl)
Academic teachers:
dr inż. Malinowski Janusz (malinowski@fis.agh.edu.pl)
Module summary

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

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
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 Activity during classes,
Project,
Execution of a project
M_K005 Student umie przedstawić wykonany projekt w sposób komunikatywny i potrafi określić warunki jego komercjalizacji. IS1A_K03, IS1A_K01 Activity during classes,
Project,
Execution of a project
Skills
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 Execution of laboratory classes
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 Execution of a project,
Execution of laboratory classes
Knowledge
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 Activity during classes,
Participation in a discussion,
Execution of a project,
Execution of laboratory classes
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 Activity during classes,
Participation in a discussion,
Execution of a project,
Execution of laboratory classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
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. - - + + - - - - - - -
Skills
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. - - + + - - - - - - -
Knowledge
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. + - + + - - - - - - -
Module content
Lectures:
  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

Laboratory classes:
  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

Project classes:
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ą

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 152 h
Module ECTS credits 6 ECTS
Participation in lectures 30 h
Realization of independently performed tasks 30 h
Participation in laboratory classes 15 h
Preparation for classes 32 h
Participation in project classes 15 h
Completion of a project 30 h
Additional information
Method of calculating the final grade:

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%.

Prerequisites and additional requirements:
  • 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++
Recommended literature and teaching resources:
  • 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
Scientific publications of module course instructors related to the topic of the module:

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

Additional information:

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.