Kwwiker

Флаг

Dec 24th, 2020
780
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <glut.h>
  2.  
  3. #define windh 598  // высота
  4. #define windw 1000 // ширина
  5. unsigned char matrix[windh][windw][3];
  6.  
  7. void display(void) {
  8.     glDrawPixels(windw, windh, GL_RGB, GL_UNSIGNED_BYTE, matrix);
  9.     glutSwapBuffers();
  10. }
  11.  
  12. void flag()
  13. {
  14.     int i, j;
  15.     // Полоски
  16.     for (i = 0; i < 46; i++)
  17.         for (j = 0; j < windw; j++)
  18.         {
  19.             matrix[i][j][0] = 255; // red
  20.             matrix[i][j][1] = 0; // green
  21.             matrix[i][j][2] = 0; // blue
  22.         }
  23.  
  24.     for (i = 46; i < 92; i++)
  25.         for (j = 0; j < windw; j++)
  26.         {
  27.             matrix[i][j][0] = 255; // red
  28.             matrix[i][j][1] = 255; // green
  29.             matrix[i][j][2] = 255; // blue
  30.         }
  31.  
  32.     for (i = 92; i < 138; i++)
  33.         for (j = 0; j < windw; j++)
  34.         {
  35.             matrix[i][j][0] = 255; // red
  36.             matrix[i][j][1] = 0; // green
  37.             matrix[i][j][2] = 0; // blue
  38.         }
  39.     for (i = 138; i < 184; i++)
  40.         for (j = 0; j < windw; j++)
  41.         {
  42.             matrix[i][j][0] = 255; // red
  43.             matrix[i][j][1] = 255; // green
  44.             matrix[i][j][2] = 255; // blue
  45.         }
  46.  
  47.     for (i = 184; i < 230; i++)
  48.         for (j = 0; j < windw; j++)
  49.         {
  50.             matrix[i][j][0] = 255; // red
  51.             matrix[i][j][1] = 0; // green
  52.             matrix[i][j][2] = 0; // blue
  53.         }
  54.  
  55.     for (i = 230; i < 276; i++)
  56.         for (j = 0; j < windw; j++)
  57.         {
  58.             matrix[i][j][0] = 255; // red
  59.             matrix[i][j][1] = 255; // green
  60.             matrix[i][j][2] = 255; // blue
  61.         }
  62.     for (i = 276; i < 322; i++)
  63.         for (j = 0; j < windw; j++)
  64.         {
  65.             matrix[i][j][0] = 255; // red
  66.             matrix[i][j][1] = 0; // green
  67.             matrix[i][j][2] = 0; // blue
  68.         }
  69.  
  70.     for (i = 322; i < 368; i++)
  71.         for (j = 0; j < windw; j++)
  72.         {
  73.             matrix[i][j][0] = 255; // red
  74.             matrix[i][j][1] = 255; // green
  75.             matrix[i][j][2] = 255; // blue
  76.         }
  77.  
  78.     for (i = 368; i < 414; i++)
  79.         for (j = 0; j < windw; j++)
  80.         {
  81.             matrix[i][j][0] = 255; // red
  82.             matrix[i][j][1] = 0; // green
  83.             matrix[i][j][2] = 0; // blue
  84.         }
  85.     for (i = 414; i < 460; i++)
  86.         for (j = 0; j < windw; j++)
  87.         {
  88.             matrix[i][j][0] = 255; // red
  89.             matrix[i][j][1] = 255; // green
  90.             matrix[i][j][2] = 255; // blue
  91.         }
  92.  
  93.     for (i = 460; i < 506; i++)
  94.         for (j = 0; j < windw; j++)
  95.         {
  96.             matrix[i][j][0] = 255; // red
  97.             matrix[i][j][1] = 0; // green
  98.             matrix[i][j][2] = 0; // blue
  99.         }
  100.  
  101.     for (i = 506; i < 552; i++)
  102.         for (j = 0; j < windw; j++)
  103.         {
  104.             matrix[i][j][0] = 255; // red
  105.             matrix[i][j][1] = 255; // green
  106.             matrix[i][j][2] = 255; // blue
  107.         }
  108.     for (i = 552; i < 598; i++)
  109.         for (j = 0; j < windw; j++)
  110.         {
  111.             matrix[i][j][0] = 255; // red
  112.             matrix[i][j][1] = 0; // green
  113.             matrix[i][j][2] = 0; // blue
  114.         }
  115.     // Синий прямоугольник
  116.     for (i = 276; i < 598; i++)
  117.         for (j = 0; j < windw / 2; j++) {
  118.             matrix[i][j][0] = 0; // red
  119.             matrix[i][j][1] = 0; // green
  120.             matrix[i][j][2] = 139; // blue
  121.         }
  122.     // Звёзды
  123.     for (i = windh/2+16; i < 598; i += 50)
  124.         for (j = 38; j < windw / 2; j += 60)
  125.             for (int k = j - 9; k <= j + 9; k++) {
  126.                 if (k == j - 9 or k == j + 9) {
  127.                     for (int l = i + 2; l <= i + 2; l++) {
  128.                         matrix[l][k][0] = 255; // red
  129.                         matrix[l][k][1] = 255; // green
  130.                         matrix[l][k][2] = 255; // blue
  131.                     }
  132.                 }
  133.                 if (k == j - 8 or k == j + 8) {
  134.                     for (int l = i + 1; l <= i + 2; l++) {
  135.                         matrix[l][k][0] = 255; // red
  136.                         matrix[l][k][1] = 255; // green
  137.                         matrix[l][k][2] = 255; // blue
  138.                     }
  139.                 }
  140.                 if (k == j - 7 or k == j + 7) {
  141.                     for (int l = i; l <= i + 2; l++) {
  142.                         matrix[l][k][0] = 255; // red
  143.                         matrix[l][k][1] = 255; // green
  144.                         matrix[l][k][2] = 255; // blue
  145.                     }
  146.                 }
  147.                 if (k == j - 6 or k == j + 6) {
  148.                     for (int l = i - 3; l <= i + 3; l++) {
  149.                         matrix[l][k][0] = 255; // red
  150.                         matrix[l][k][1] = 255; // green
  151.                         matrix[l][k][2] = 255; // blue
  152.                     }
  153.                 }
  154.                 if (k == j - 5 or k == j + 5) {
  155.                     for (int l = i - 10; l <= i + 3; l++) {
  156.                         matrix[l][k][0] = 255; // red
  157.                         matrix[l][k][1] = 255; // green
  158.                         matrix[l][k][2] = 255; // blue
  159.                     }
  160.                 }
  161.                 if (k == j - 4 or k == j + 4) {
  162.                     for (int l = i - 9; l <= i + 4; l++) {
  163.                         matrix[l][k][0] = 255; // red
  164.                         matrix[l][k][1] = 255; // green
  165.                         matrix[l][k][2] = 255; // blue
  166.                     }
  167.                 }
  168.                 if (k == j - 3 or k == j + 3) {
  169.                     for (int l = i - 8; l <= i + 5; l++) {
  170.                         matrix[l][k][0] = 255; // red
  171.                         matrix[l][k][1] = 255; // green
  172.                         matrix[l][k][2] = 255; // blue
  173.                     }
  174.                 }
  175.                 if (k == j - 2 or k == j + 2) {
  176.                     for (int l = i - 7; l <= i + 6; l++) {
  177.                         matrix[l][k][0] = 255; // red
  178.                         matrix[l][k][1] = 255; // green
  179.                         matrix[l][k][2] = 255; // blue
  180.                     }
  181.                 }
  182.                 if (k == j - 1 or k == j + 1) {
  183.                     for (int l = i - 6; l <= i + 8; l++) {
  184.                         matrix[l][k][0] = 255; // red
  185.                         matrix[l][k][1] = 255; // green
  186.                         matrix[l][k][2] = 255; // blue
  187.                     }
  188.                 }
  189.                 if (k == j) {
  190.                     for (int l = i - 6; l <= i + 10; l++) {
  191.                         matrix[l][k][0] = 255; // red
  192.                         matrix[l][k][1] = 255; // green
  193.                         matrix[l][k][2] = 255; // blue  
  194.                     }
  195.                 }
  196.         }
  197.     glutPostRedisplay();
  198. }
  199.  
  200. int main(int argc, char* argv[])
  201. {
  202.     glutInit(&argc, argv);
  203.     glutInitWindowSize(windw, windh);
  204.     glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
  205.     (void)glutCreateWindow("Flag");
  206.     glutDisplayFunc(display);
  207.     glutInitWindowPosition(100, 100);
  208.     glClearColor(0, 0, 0, 1.0f);
  209.     glutIdleFunc(flag);
  210.     glutMainLoop();
  211.     return 0;
  212. }
RAW Paste Data