| LINE | PROGRAMS |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
//===============================================// // Title : 3D Object in OpenGL // Programmer : V R E M P I R E // Date : Wednesday, February 1, 2006 //===============================================// #include <stdio.h> #include <gl/glut.h> GLdouble V0[] = { 0.0, 0.0, 0.0}; GLdouble V1[] = { 1.0f, 0.0, 0.0}; GLdouble V2[] = { 1.0f, 1.0f, 0.0}; GLdouble V3[] = { 0.0, 1.0f, 0.0}; GLdouble V4[] = { 0.0, 0.0, -1.0f}; GLdouble V5[] = { 1.0f, 0.0, -1.0f}; GLdouble V6[] = { 1.0f, 1.0f, -1.0f}; GLdouble V7[] = { 0.0, 1.0f, -1.0f}; void Display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(3.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glColor3f(0.0, 1.0, 0.0); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glBegin(GL_QUADS); glVertex3dv(V0); glVertex3dv(V1); glVertex3dv(V2); glVertex3dv(V3); // Surface 1 glVertex3dv(V1); glVertex3dv(V5); glVertex3dv(V6); glVertex3dv(V2); // Surface 2 glVertex3dv(V5); glVertex3dv(V4); glVertex3dv(V7); glVertex3dv(V6); // Surface 3 glVertex3dv(V4); glVertex3dv(V0); glVertex3dv(V3); glVertex3dv(V7); // Surface 4 glVertex3dv(V3); glVertex3dv(V2); glVertex3dv(V6); glVertex3dv(V7); // Surface 5 glVertex3dv(V0); glVertex3dv(V4); glVertex3dv(V5); glVertex3dv(V1); // Surface 6 glEnd(); glutSwapBuffers(); } void Init(void) { glClearColor(0.0, 0.0, 0.0, 0.0); } void Resize(int width, int height) { glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0, width/height, 0.1, 1000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize(400, 400); glutInitWindowPosition(200, 200); glutCreateWindow("3D Object in OpenGL"); Init(); glutDisplayFunc(Display); glutReshapeFunc(Resize); glutMainLoop(); return 0; } |