#include #include #include #include //<<<< axis >>>>// void axis(double length) { //draw a z-axis, with cone at end glPushMatrix(); glBegin(GL_LINES); glVertex3d(0,0,0); glVertex3d(0,0,length); glEnd(); glTranslated(0,0,length -0.2); glutWireCone(0.04,0.2,12,9); glPopMatrix(); } //<<<< displayWire >>>>// void displayWire(void) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); // glOrtho(-2.0*64/48.0,2.0*64/48.0,-2.0,2.0,0.1,100); glOrtho(-1.2*64/48.0,1.2*64/48.0,-1.2,1.2,0.1,100); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); // gluLookAt(2.0,2.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0); gluLookAt(4.0,2.0,8.0,0.0,0.0,0.0,0.0,1.0,0.0); glClear(GL_COLOR_BUFFER_BIT); glColor3d(0,0,0); axis(0.5); glPushMatrix(); glRotated(90,0,1.0,0); axis(0.5); glRotated(90,1,0,0); axis(0.5); glPopMatrix(); glPushMatrix(); glTranslated(0.5,0.5,0.5); glutWireCube(1.0); glPopMatrix(); glPushMatrix(); glTranslated(1.0,1.0,0); glutWireSphere(0.25,10,8); glPopMatrix(); glPushMatrix(); glTranslated(1.0,0,1.0); glutWireCone(0.2,0.5,10,8); glPopMatrix(); glPushMatrix(); glTranslated(0,0,1.0); glutWireTeapot(0.2); glPopMatrix(); glPushMatrix(); glTranslated(0,1.0,0); glRotated(90.0,1,0,0); glutWireTorus(0.1,0.3,10,10); glPopMatrix(); glPushMatrix(); glTranslated(1.0,0,0); glScaled(0.15,0.15,0.15); glutWireDodecahedron(); glPopMatrix(); // glPushMatrix(); // glTranslated(0,0,1.0); // GLUQuadricObj * qobj; // qobj = gluNewQuadric(); // gluQuadricDrawStyle(qobj,GLU_LINE); // gluCylinder(qobj,0.2,0.2,0.4,8,8); // glPopMatrix(); glFlush(); } //<<<< main >>>> void main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // glutInitWindowSize(640,480); glutInitWindowSize(1024,800); glutInitWindowPosition(100,100); glutCreateWindow("Transformation Testbed - Wire Frames"); glutDisplayFunc(displayWire); glClearColor(1.0f,1.0f,1.0f,0.0f); glViewport(0,0,640,480); // glViewport(0,0,1200,1000); glutMainLoop(); }