#include <GL/glut.h>
void Initialize() {
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
}
void display() {
glBegin(GL_LINE_STRIP);
float a = 0;
glVertex2f(a + 0.02, a + 0.01);
glVertex2f(a + 0.1, a + 0.01);
glVertex2f(a + 0.15, a + 0.08);
glVertex2f(a + 0.18, a + 0.08);
glVertex2f(a + 0.13, a + 0.01);
glVertex2f(a + 0.22, a + 0.01);
glVertex2f(a + 0.25, a + 0.07);
glVertex2f(a + 0.27, a + 0.07);
glVertex2f(a + 0.24, a + 0.01);
glVertex2f(a + 0.30, a + 0.01);
glVertex2f(a + 0.32, a + 0);
glEnd();
}
void draw() {
for (int i = 0; i < 6; i++) {
display();
glRotatef(60.0, 0.0, 0.0, 1.0);
}
}
void snow(int r) {
glRotatef(r, 0,0,1);
draw();
glScalef(1.0, -1.0, 1);
draw();
glScalef(1.0, -1.0, 1);
}
float r = 0;
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.6, 0.3, 0.2);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
snow(r);
r += 0.3;
glutPostRedisplay();
glFlush();
}
int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(960, 720);
glutInitWindowPosition(0, 0);
glutCreateWindow("hello world");
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}
openGL 雪花
最新推荐文章于 2022-06-10 11:47:50 发布