/* Demo of the color interpolation Implemented Fall 2003 Scott D. Anderson */ #include #include #include twTriple Tri[3] = { {0,0,0}, {3,-2,0}, {1,4,0} }; twTriple Quad[4] = { {5,0,0}, {7,-2,0}, {9,1,0}, {6,3,0} }; void drawTri() { glBegin(GL_TRIANGLES); { glColor3f(1,0,0); glVertex3fv(Tri[0]); glColor3f(1,0,1); glVertex3fv(Tri[1]); glColor3f(1,1,0); glVertex3fv(Tri[2]); } glEnd(); } void drawQuad() { glBegin(GL_TRIANGLES); { glColor3f(0,0,1); glVertex3fv(Quad[0]); glColor3f(0.1,0.7,0.4); glVertex3fv(Quad[1]); glColor3f(0.6,0.6,0.6); glVertex3fv(Quad[2]); glColor3f(0.6,0.6,0.6); glVertex3fv(Quad[2]); glColor3f(0.1,0.8,0.5); glVertex3fv(Quad[3]); glColor3f(0,0,1); glVertex3fv(Quad[0]); } glEnd(); } void drawQuad2() { glBegin(GL_TRIANGLES); { glColor3f(0.1,0.7,0.4); glVertex3fv(Quad[1]); glColor3f(0.6,0.6,0.6); glVertex3fv(Quad[2]); glColor3f(0.1,0.8,0.5); glVertex3fv(Quad[3]); glColor3f(0.1,0.8,0.5); glVertex3fv(Quad[3]); glColor3f(0,0,1); glVertex3fv(Quad[0]); glColor3f(0.1,0.7,0.4); glVertex3fv(Quad[1]); } glEnd(); } void display(void) { twDisplayInit(); twCamera(); glShadeModel(GL_SMOOTH); drawTri(); drawQuad(); for(int i=0; i<4; i++) Quad[i][0] += 4; drawQuad2(); for(int i=0; i<4; i++) Quad[i][0] -= 4; glFlush(); glutSwapBuffers(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); twInitWindowSize(800,500); glutCreateWindow(argv[0]); glutDisplayFunc(display); twBoundingBox(0,9,-2,3,-1,1); twMainInit(); glutMainLoop(); return 0; }