Probleme und Fragen ins wiki stellen
Abgabe der Lösungen bis Montag abend (25.04.2005) 18.00 Uhr per
E-Mail:
Gruppe Sound-Memory:
fehr@informatik.uni-freiburg.de
Gruppe Computer Grafik: shamoha@mac.com(Sebastian Schulz)
Aufgabenblatt 1: RGBColor-Klasse
Implementieren sie eine C++-Klasse, die ein 24-Bit Farbpixel repräsentiert.
Die Schnittstellen sind in dem
Headerfile RGBColor.hh vorgegeben, die entsprechenden
RGBColor.cc und RGBColor.icc sind zu erstellen.
1.1 Grundfunktionalitäten (3 Punkte)
Implementieren Sie ...
- ... die drei Konstruktoren (black, arbitrary, gray),
- ... die drei Accessorfunktionen für die einzelnen Farbkanäle (red(), green(), blue()),
- ... die set-Funktion
- und die angegebenen Farbkonstanten (White, Red, ...).
1.2 Operatoren (6 Punkte)
Implementieren Sie die einzelnen im Headerfile vorgegebenen Operatoren. Der Operator ! steht hier für die Inverse.
1.3 Ausgabe (1 Punkt)
Implementieren sie die print()-Funktion, welche das Pixel auf die Standardausgabe (std::cout) ausgibt. Die Ausgabe soll in folgendem Format erfolgen:
(255, 17, 48)
Wobei die drei Zahlen den Rot-, Grün- und Blaukanälen entsprechen.
Tipps
- Wenn alle Dateien erstellt sind, ruft man in der Shell make auf um die RGBColor-Klasse und das Testprogramm zu kompilieren.
Mit ./testRGBColor wird das Testprogramm ausgeführt. Vergleichen Sie die Ausgabe mit outout.txt.
- Geschwindigkeitskritische Funktionen sollten als inline deklariert werden.
- Bei der print-Methode müssen die unsigned characters for dem Ausdrucken in
int's gewandelt werden (sonst erscheint z.B. statt einer 65 ein großes
"A"). Das geht einfach mit
cout << int(rc) << ...
Vorgegebene Dateien
Abzugebende Dateien
Bewertungskriterien
- einwandfreie Funktionalität
- Dokumentation