Witam. Bardzo prosiłbym o pomoc przy zrozumieniu polecenia do zadania. Mój prowadzący poszedł na ponad miesięczne chorobowe przed sesją przez co nie mogłem się go po prostu zapytać o co kaman. Zadanie chce spróbować zrobić - mimo że jest nieobowiązkowe.
Treść zadania:
Zaimplementuj dwie klasy: **ImageBW **i **ImageC **implementujące odpowiednio bitmapowe obrazy czarno-białe i kolorowe. Rozmiary obrazów są ustalone przy tworzeniu obiektów jako parametry konstruktora. Zaprogramuj w tych klasach metody +(arg), *(arg), które zwracają nowy obiekt klasy **ImageBW ** bądź ImageC. Metoda +(arg) tworzy nowy obraz, którego każdy piksel jest alternatywą bitową odpowiednich piksli. Takie operacje mają sens, gdy operacje wykonujemy na obrazkach o tych samych rozmiarach i tym samym typie (tj. tylko kolorowe z kolorowymi albo czarno-białe z czarno-białymi). Można przyjąć, że zawsze wykonujemy metody na poprawnych danych. Dodaj też do tych klas metodę narysuj rysującą obrazy postaci ascii-art’u.
Więc czytam to zadanie, raz po raz i rozumiem z niego coraz mniej.
Myślę że mam zrobić 2 klasy reprezentujące 2 rozdaje bitMap. To znaczy że mam w obiekcie jednej klasy umieścić zdjęcie w kolorze a w drugiej zdjęcie w szarościach? Jeśli tak - to po co tworzyć osobne klasy - a nie skorzystać z wbudowanych funkcji np. jak w tym tutorialu? https://www.libsdl.org/release/SDL-1.2.15/docs/html/guidevideo.html
Metoda +(arg) tworzy nowy obraz, którego każdy piksel jest alternatywą bitową odpowiednich piksli. Takie operacje mają sens, gdy operacje wykonujemy na obrazkach o tych samych rozmiarach i tym samym typie (tj. tylko kolorowe z kolorowymi albo czarno-białe z czarno-białymi).
Jak interpretować alternatywę bitową? BitMapy to macierze które przechowują wartości R,G,B jak zrobić sumę logiczną (bo tak interpretuje alternatywę) na owych wartościach? Nie rozumiem co ma robić przeładowanie operatora + jej wynikiem ma być macierz? Wynikiem alternatywy jest 0/1 prawda/fausz ma być to macierz binarna?
No i moja największa bolączka, co ma robić *(arg)?
Bardzo proszę o pomoc.