Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Podstawy grafiki komputerowej
Tok studiów:
2019/2020
Kod:
JMNB-1-019-s
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Mikro- i nanotechnologie w biofizyce
Semestr:
0
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Stacjonarne
Prowadzący moduł:
dr inż. Malinowski Janusz (malinowski@fis.agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

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

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 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 MNB1A_W03, MNB1A_W02, MNB1A_W01 Aktywność na zajęciach,
Udział w dyskusji,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_W002 Student dysponuje aktualną wiedzą na temat wybranych bibliotek programistycznych wspomagających programowanie grafiki rastrowej oraz grafiki wektorowej 2D. MNB1A_W02, MNB1A_W01 Aktywność na zajęciach,
Udział w dyskusji,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
Umiejętności: potrafi
M_U001 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. MNB1A_U01, MNB1A_U10, MNB1A_U02 Wykonanie ćwiczeń laboratoryjnych
M_U002 Student potrafi właściwie wykorzystać różne biblioteki programistyczne do stworzenia efektywnie działającej aplikacji graficznej. MNB1A_U01, MNB1A_U10 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne: jest gotów do
M_K001 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. MNB1A_K05, MNB1A_K01, MNB1A_K04, MNB1A_K03 Aktywność na zajęciach,
Projekt,
Wykonanie projektu
M_K002 Student umie przedstawić wykonany projekt w sposób komunikatywny i potrafi określić warunki jego komercjalizacji. MNB1A_K05, MNB1A_K01, MNB1A_K04, MNB1A_K03 Aktywność na zajęciach,
Projekt,
Wykonanie projektu
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
60 30 0 15 15 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 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_W002 Student dysponuje aktualną wiedzą na temat wybranych bibliotek programistycznych wspomagających programowanie grafiki rastrowej oraz grafiki wektorowej 2D. + - + + - - - - - - -
Umiejętności
M_U001 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_U002 Student potrafi właściwie wykorzystać różne biblioteki programistyczne do stworzenia efektywnie działającej aplikacji graficznej. - - + + - - - - - - -
Kompetencje społeczne
M_K001 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_K002 Student umie przedstawić wykonany projekt w sposób komunikatywny i potrafi określić warunki jego komercjalizacji. - - + + - - - - - - -
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 zajęciach dydaktycznych/praktyka 60 godz
Przygotowanie do zajęć 32 godz
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 30 godz
Samodzielne studiowanie tematyki zajęć 30 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (30h):
  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 (15h):
  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 (15h):
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ą

Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Ćwiczenia laboratoryjne: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
  • Ćwiczenia projektowe: Studenci wykonują zadany projekt samodzielnie, bez większej ingerencji prowadzącego. Ma to wykształcić poczucie odpowiedzialności za pracę w grupie oraz odpowiedzialności za podejmowane decyzje.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

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.

Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Ćwiczenia laboratoryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu. Zaliczenie modułu jest możliwe po zaliczeniu wszystkich zajęć laboratoryjnych.
  • Ćwiczenia projektowe:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują prace praktyczne mające na celu uzyskanie kompetencji zakładanych przez syllabus. Ocenie podlega sposób wykonania projektu oraz efekt końcowy.
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%.

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

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.

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :
  • 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:

Brak