Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.43 KB | None | 0 0
  1. #include <GL/glut.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. GLsizei winWidth = 600, winHeight = 500;
  5. /* Вихідний розмір вікна зображення. */
  6. GLint xRaster = 25, yRaster = 150;
  7. /* Ініціалізація растрового розташування. */
  8. 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'};
  9. GLint dataValue [12] = {420, 342, 324, 310, 262, 185,190, 196, 217, 240, 312, 438};
  10. void init (void)
  11. {
  12.     glClearColor (1.0, 1.0, 1.0, 1.0);   // Біле вікно.
  13.     glMatrixMode (GL_PROJECTION);
  14.     gluOrtho2D (0.0, 600.0, 0.0, 500.0);
  15. }
  16. void lineGraph (void)
  17. {
  18.     GLint month, k;
  19.     GLint x = 30;        // Ініціалізація координати х.
  20.     glClear (GL_COLOR_BUFFER_BIT);
  21.     /*Чисте вікно зображення.*/
  22.     glColor3f (0.0, 0.0, 1.0); //Синій колір лінії.
  23.     glBegin (GL_LINE_STRIP);
  24.     /*Відображення графіку у вигляді ламаної лінії. */
  25.     for (k =0; k < 12; k++)
  26.         glVertex2i (x + k*50, dataValue [k]); glEnd ( );
  27.     glColor3f (1.0, 0.0, 0.0); //Червоний колір маркера.
  28.     for (k =0; k < 12; k++)
  29.     {
  30.     /* Відображення даних полімаркером (зірочками). */
  31.         glRasterPos2i (xRaster + k*50, dataValue [k] - 4); glutBitmapCharacter (GLUT_BITMAP_9_BY_15, '*');
  32.     }
  33.     glColor3f (0.0, 0.0, 0.0); // Чорний колір тексту.
  34.     xRaster = 20;
  35.     /* Відображення підписів на діаграмі. */
  36.     for (month = 0; month < 12; month++) {
  37.         glRasterPos2i (xRaster, yRaster);
  38.     for (k = 3*month; k < 3*month + 3; k++)
  39.     {
  40.         glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, label [k]);
  41.         xRaster += 50;}
  42.         glFlush ( );
  43.     }
  44. }
  45. void winReshapeFcn (GLint newWidth, GLint newHeight)
  46. {
  47.     glMatrixMode (GL_PROJECTION);
  48.     glLoadIdentity ( ) ;
  49.     gluOrtho2D (0.0, GLdouble (newWidth),
  50.                 0.0, GLdouble (newHeight));
  51.     glClear   (GL_COLOR_BUFFER_BIT);
  52. }
  53. void main   (int argc,   char**  argv)  
  54. {
  55.     glutInit   (&argc,   argv);
  56.     glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
  57.     glutInitWindowPosition (100, 100);
  58.     glutInitWindowSize (winWidth, winHeight);
  59.     glutCreateWindow ("Лінійний графік даних");
  60.     init ( );
  61.     glutDisplayFunc (lineGraph); glutReshapeFunc (winReshapeFcn); glutMainLoop ( );
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement