Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GL/glut.h>
- #include <stdlib.h>
- #include <math.h>
- GLsizei winWidth = 600, winHeight = 500;
- /* Вихідний розмір вікна зображення. */
- GLint xRaster = 25, yRaster = 150;
- /* Ініціалізація растрового розташування. */
- GLubyte label [36] = {'J','a','n', 'F','e','b', 'M','a', 'r','A','p','r', 'M','a','y', 'J','u', 'n', 'J','u','l', 'A','u','g', 'S','e', 'p', 'O','c','t', 'N','o','v', 'D','e', 'c'};
- GLint dataValue [12] = {420, 342, 324, 310, 262, 185,190, 196, 217, 240, 312, 438};
- void init (void)
- {
- glClearColor (1.0, 1.0, 1.0, 1.0); // Біле вікно.
- glMatrixMode (GL_PROJECTION);
- gluOrtho2D (0.0, 600.0, 0.0, 500.0);
- }
- void lineGraph (void)
- {
- GLint month, k;
- GLint x = 30; // Ініціалізація координати х.
- glClear (GL_COLOR_BUFFER_BIT);
- /*Чисте вікно зображення.*/
- glColor3f (0.0, 0.0, 1.0); //Синій колір лінії.
- glBegin (GL_LINE_STRIP);
- /*Відображення графіку у вигляді ламаної лінії. */
- for (k =0; k < 12; k++)
- glVertex2i (x + k*50, dataValue [k]); glEnd ( );
- glColor3f (1.0, 0.0, 0.0); //Червоний колір маркера.
- for (k =0; k < 12; k++)
- {
- /* Відображення даних полімаркером (зірочками). */
- glRasterPos2i (xRaster + k*50, dataValue [k] - 4); glutBitmapCharacter (GLUT_BITMAP_9_BY_15, '*');
- }
- glColor3f (0.0, 0.0, 0.0); // Чорний колір тексту.
- xRaster = 20;
- /* Відображення підписів на діаграмі. */
- for (month = 0; month < 12; month++) {
- glRasterPos2i (xRaster, yRaster);
- for (k = 3*month; k < 3*month + 3; k++)
- {
- glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, label [k]);
- xRaster += 50;}
- glFlush ( );
- }
- }
- void winReshapeFcn (GLint newWidth, GLint newHeight)
- {
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ( ) ;
- gluOrtho2D (0.0, GLdouble (newWidth),
- 0.0, GLdouble (newHeight));
- glClear (GL_COLOR_BUFFER_BIT);
- }
- void main (int argc, char** argv)
- {
- glutInit (&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowPosition (100, 100);
- glutInitWindowSize (winWidth, winHeight);
- glutCreateWindow ("Лінійний графік даних");
- init ( );
- glutDisplayFunc (lineGraph); glutReshapeFunc (winReshapeFcn); glutMainLoop ( );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement