// // Computergraphik II // Prof. Dr. Juergen Doellner // Wintersemester 2001/2002 // // Rahmenprogramm fuer Aufgabenzettel 3 // // Autoren: Florian Kirsch (kirsch@hpi.uni-potsdam.de) // Marc Nienhaus (nienhaus@hpi.uni-potsdam.de) // Juergen Doellner (doellner@hpi.uni-potsdam.de) // #include "cghsvcolors.h" CGHSVColors::CGHSVColors(int width, int height) : raster_(width,height) { mode_ = DrawGrid; run_ = false; angle_ = 30; clrFrom = Color(1.0, 0.0, 0.5); clrTo = Color(0.45, 0.55, 0.4); } void CGHSVColors::onInit() { glClearColor(1, 1, 1, 1); // anti-aliased points // glHint(GL_POINT_SMOOTH_HINT, GL_FASTEST); // glEnable(GL_POINT_SMOOTH); // glEnable(GL_BLEND); // glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } void CGHSVColors::onDraw() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); // if (mode_ == DrawGrid) { // color banner glViewport(0, 0, winWidth_-1, winHeight_/10); glDisable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); gluOrtho2D(0, raster_.width(), 0, raster_.height()); glMatrixMode(GL_MODELVIEW); // Hier 2D-Raster zeichnen raster_.clear(); const int colors = raster_.width(); for (int x=0; x= 0.05) clrFrom[0] -= 0.05; break; case 's': if (clrFrom[1] <= 0.95) clrFrom[1] += 0.05; break; case 'x': if (clrFrom[1] >= 0.05) clrFrom[1] -= 0.05; break; case 'd': if (clrFrom[2] <= 0.95) clrFrom[2] += 0.05; break; case 'c': if (clrFrom[2] >= 0.05) clrFrom[2] -= 0.05; break; // change "to" color case 'f': if (clrTo [0] <= 0.95) clrTo [0] += 0.05; break; case 'v': if (clrTo [0] >= 0.05) clrTo [0] -= 0.05; break; case 'g': if (clrTo [1] <= 0.95) clrTo [1] += 0.05; break; case 'b': if (clrTo [1] >= 0.05) clrTo [1] -= 0.05; break; case 'h': if (clrTo [2] <= 0.95) clrTo [2] += 0.05; break; case 'n': if (clrTo [2] >= 0.05) clrTo [2] -= 0.05; break; case ' ': run_ = !run_; break; } onDraw(); } int main(int argc, char* argv[]) { CGHSVColors hsvcolors(32, 3); cout << "Tastenbelegung:" << endl << "ESC Programm beenden" << endl << "Leertaste Objekt drehen" << endl << "a Rotanteil der Startfarbe erhöhen" << endl << "y Rotanteil der Startfarbe verringern" << endl << "s Grünanteil der Startfarbe erhöhen" << endl << "x Grünanteil der Startfarbe verringern" << endl << "d Blauanteil der Startfarbe erhöhen" << endl << "c Blauanteil der Startfarbe verringern" << endl << "f Rotanteil der Zielfarbe erhöhen" << endl << "v Rotanteil der Zielfarbe verringern" << endl << "g Grünanteil der Zielfarbe erhöhen" << endl << "b Grünanteil der Zielfarbe verringern" << endl << "h Blauanteil der Zielfarbe erhöhen" << endl << "n Blauanteil der Zielfarbe verringern" << endl; hsvcolors.start("Stephan Brumme, 702544", true, 400, 400); return(0); }