www.pudn.com > star.rar > star.cpp


// star.cpp : Defines the entry point for the console application. 
//opengl32.lib glu32.lib glut32.lib glaux.lib 
 
#include "stdafx.h" 
#include "math.h" 
#include  
#include  
#include  
#include  
#include  
 
#define pi 3.1415926535897 
 
 
void myInit(void); 
void drawStar(); 
void myDisplay(void); 
 
void myInit(void) 
{ 
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); 
   glutInitWindowSize (600, 600); 
   glutInitWindowPosition (0,0); 
   glutCreateWindow ("my stars"); 
} 
 
 
void CALLBACK reshape(GLsizei w,GLsizei h) 
{ 
	if(w>h) 
		glViewport(0,0,h,h); 
	else 
		glViewport(0,0,w,w); 
	 
} 
 
void drawStar() 
{ 
	glColor3f(0.0,0.0,1.0); 
	/*glBegin(GL_LINE_LOOP); 
	    glVertex2f(cos(pi/10),sin(pi/10)) ;              //0 
        glVertex2f(cos(pi/10+4*pi/5),sin(pi/10+4*pi/5)) ;//2 
		glVertex2f(cos(pi/10+8*pi/5),sin(pi/10+8*pi/5)) ;//4 
        glVertex2f(cos(pi/10+2*pi/5),sin(pi/10+2*pi/5)) ;//1 
		glVertex2f(cos(pi/10+6*pi/5),sin(pi/10+6*pi/5)) ;//3 
	glEnd();*/ 
	auxWireTetrahedron(1); 
    glFlush( ) ; 
} 
		 
         
 
 
 
void myDisplay(void) 
{ 
  glClearColor(255.0,255.0,255.0,0.0); 
  glClear(GL_COLOR_BUFFER_BIT); 
 
  glMatrixMode(GL_PROJECTION);  
  glLoadIdentity();		 
  //gluOrtho2D(-3,3,-3,3);//设置正交投影 
 
 glViewport (220,220,160,160) ;   
 drawStar() ; 
 auxWireTeapot(2.0); 
 for( int i = 1; i < 3; i ++ )  
       for( int j = 0 ; j < 10; j ++ )      
      { 
		 GLfloat x,y; 
		 x=300+100*(3-i)*cos(pi/5*j); 
		 y=300+100*(3-i)*sin(pi/5*j); 
         glViewport ( x-20*i,y-20*i,40*i, 40*i) ;   
         drawStar() ; 
       } 
 
} 
 
int main(int argc, char* argv[]) 
{ 
   glutInit(&argc, argv); 
   myInit (); 
   //glutReshapeFunc(reshape); 
   auxReshapeFunc(reshape); 
   glutDisplayFunc(myDisplay); 
   glutMainLoop();  
   return 0; 
}