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; }