//cone_perspective.cpp: draws a perspective view of a GLUT wire cone // w32ogl Project / Properties: // Must add Linker / Input / Additional Dependencies: opengl32.lib glu32.lib glut32.lib // Must set Linker / Advanced / Entry Point to: mainCRTStartup #include "glut.h" GLint winWidth=500, winHeight=500; void init(void) { glClearColor(1.0,1.0,1.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum(-1.0,1.0,-1.0,1.0,1.0,5.0); //glOrtho(-1.0,1.0,-1.0,1.0,1.0,5.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(2.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0); } void mydisplay(void) { glClear(GL_COLOR_BUFFER_BIT); //*** display the coordinate axes in blue glColor3f(0.0,0.0,1.0); glBegin(GL_LINES); glVertex3f(0.0,0.0,0.0); glVertex3f(0.0,0.0,2.0); glVertex3f(0.0,0.0,0.0); glVertex3f(0.0,2.0,0.0); glVertex3f(0.0,0.0,0.0); glVertex3f(2.0,0.0,0.0); glEnd(); glColor3f(1.0,0.0,0.0); // red wireframe cone //***display cone rotated by 30 degrees about y-axis //glRotatef(30.0,0.0,1.0,0.0); //move cone out y-axis & rotate by 30 degrees about y-axis //glRotatef(30.0,0.0,1.0,0.0); //glTranslatef(0.0,1.0,0.0); //move out y-axis & rotate by 90 degrees about x-axis //glRotatef(90.0,1.0,0.0,0.0); //glTranslatef(0.0,1.8,0.0); //reverse previous glTranslatef(0.0,1.8,0.0); glRotatef(90.0,1.0,0.0,0.0); glutWireCone(0.5,1.0,12,6); glFlush(); } void main(int argc, char** argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB); glutInitWindowPosition(100,100); glutInitWindowSize(winWidth,winHeight); glutCreateWindow("Perspective View of a Wireframe Cone"); init(); glutDisplayFunc(mydisplay); glutMainLoop(); }