Initial Commit.
This commit is contained in:
commit
3e28700ceb
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
*~
|
||||
.o
|
||||
a.out
|
||||
|
2
Makefile
Normal file
2
Makefile
Normal file
@ -0,0 +1,2 @@
|
||||
a.out: main.cpp
|
||||
clang++ -std=c++14 -g -o a.out main.cpp -lGL -lGLU -lglut
|
73
main.cpp
Normal file
73
main.cpp
Normal file
@ -0,0 +1,73 @@
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
#include <GL/glut.h>
|
||||
|
||||
GLfloat light_diffuse[] = {1.0, 0.0, 0.0, 1.0}; /* Red diffuse light. */
|
||||
GLfloat light_position[] = {1.0, 1.0, 1.0, 0.0}; /* Infinite light location. */
|
||||
|
||||
void draw()
|
||||
{
|
||||
glLineWidth(2.0f);
|
||||
glColor3d(0,0,0);
|
||||
|
||||
float line[21];
|
||||
|
||||
for(auto i = 0; i < 21; ++i)
|
||||
line[i] = 0;
|
||||
|
||||
for(auto y = 0; y < 100; ++y)
|
||||
{
|
||||
glBegin(GL_LINE_STRIP);
|
||||
for(auto x = 0; x < 21; ++x)
|
||||
{
|
||||
line[x] += (rand() % 5 - 2) / 4.0f;
|
||||
glVertex3f(x - 10, line[x], 25.0 - y);
|
||||
}
|
||||
glEnd();
|
||||
}
|
||||
}
|
||||
|
||||
void display()
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
draw();
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
void init()
|
||||
{
|
||||
// dvereb:
|
||||
srand(time(NULL));
|
||||
|
||||
/* Enable a single OpenGL light. */
|
||||
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
|
||||
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
|
||||
glEnable(GL_LIGHT0);
|
||||
glEnable(GL_LIGHTING);
|
||||
|
||||
/* Use depth buffering for hidden surface elimination. */
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
/* Setup the view of the cube. */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
gluPerspective( /* field of view in degree */ 40.0,
|
||||
/* aspect ratio */ 1.0,
|
||||
/* Z near */ 1.0, /* Z far */ 1000.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
gluLookAt(0.0, 7.0, 25.0, /* eye is at (0,0,5) */
|
||||
0.0, 0.0, 0.0, /* center is at (0,0,0) */
|
||||
0.0, 1.0, 0.); /* up is in positive Y direction */
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
glutInit(&argc, argv);
|
||||
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
|
||||
glutCreateWindow("test opengl program");
|
||||
glutDisplayFunc(display);
|
||||
init();
|
||||
glutMainLoop();
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user