Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.12 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.    glClearColor (1.0, 1.0, 1.0, 1.0);   // Біле вікно.
  12.    glMatrixMode (GL_PROJECTION);
  13.    gluOrtho2D (0.0, 600.0, 0.0, 500.0);
  14. }
  15. void lineGraph (void) {
  16.    GLint month, k;
  17.    GLint x = 30;    // Ініціалізація координати х.
  18.    glClear (GL_COLOR_BUFFER_BIT);
  19. /*Чисте вікно зображення.*/
  20.    glColor3f (0.0, 0.0, 1.0); //Синій колір лінії.
  21.    glBegin (GL_LINE_STRIP);
  22. /*Відображення графіку у вигляді ламаної лінії. */
  23. for (k =0; k < 12; k++)
  24.    glVertex2i (x + k*50, dataValue [k]); glEnd ( );
  25.    glColor3f (1.0, 0.0, 0.0); //Червоний колір маркера.
  26. for (k =0; k < 12; k++) {
  27. /* Відображення даних полімаркером (зірочками). */
  28.     glRasterPos2i (xRaster + k*50, dataValue [k] - 4); glutBitmapCharacter (GLUT_BITMAP_9_BY_15, '*');
  29. }
  30.     glColor3f (0.0, 0.0, 0.0); // Чорний колір тексту.
  31.     xRaster = 20;
  32. /* Відображення підписів на діаграмі. */
  33. for (month = 0; month < 12; month++) {
  34.     glRasterPos2i (xRaster, yRaster);
  35. for (k = 3*month; k < 3*month + 3; k++){ glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, label [k]);
  36.      xRaster += 50;}
  37.      glFlush ( );
  38. }
  39. void winReshapeFcn (GLint newWidth, GLint newHeight){
  40.   glMatrixMode (GL_PROJECTION);
  41.   glLoadIdentity ( ) ;
  42.   gluOrtho2D (0.0, GLdouble (newWidth),
  43.   0.0, GLdouble (newHeight));
  44.   glClear   (GL_COLOR_BUFFER_BIT);
  45. }
  46. void main   (int argc,   char**  argv)   {
  47. glutInit   (&argc,   argv);
  48. glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
  49. glutInitWindowPosition (100, 100);
  50. glutInitWindowSize (winWidth, winHeight);
  51. glutCreateWindow ("Лінійний графік даних");
  52. init ( );
  53. glutDisplayFunc (lineGraph); glutReshapeFunc (winReshapeFcn); glutMainLoop ( );
  54. }
  55.  
  56.  
  57.  
  58. //вторая часть
  59. void barChart (void) {
  60. GLint month, k, h;
  61. glClear(GL_COLOR_BUFFER_BIT); // Чисте вікно зображення.
  62. glColor3f (1.0, 0.0, 0.0);
  63. /* Червоний колір прямокутників. */
  64. for (k = 0; k < 12; k++)
  65. glRecti (20 + k*50, 165, 40 + k*50, dataValue [k]); glColor3f (0.0, 0.0, 0.0); // Чорний колір тексту.
  66. xRaster = 20;
  67. /* Відображення підписів на діаграмі. */
  68. for (month = 0; month < 12; month++) {
  69. glRasterPos2i (xRaster, yRaster);
  70. for (h = 3*month; h < 3*month + 3; h++){
  71.    glutBitmapCharacter (GLUT_BITMAP_HELVETICA_12,label[h]);
  72.    xRaster += 50;
  73.    }
  74.    glFlush ( );
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement