Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <glut.h>
- #define windh 598 // высота
- #define windw 1000 // ширина
- unsigned char matrix[windh][windw][3];
- void display(void) {
- glDrawPixels(windw, windh, GL_RGB, GL_UNSIGNED_BYTE, matrix);
- glutSwapBuffers();
- }
- void flag()
- {
- int i, j;
- // Полоски
- for (i = 0; i < 46; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 0; // green
- matrix[i][j][2] = 0; // blue
- }
- for (i = 46; i < 92; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 255; // green
- matrix[i][j][2] = 255; // blue
- }
- for (i = 92; i < 138; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 0; // green
- matrix[i][j][2] = 0; // blue
- }
- for (i = 138; i < 184; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 255; // green
- matrix[i][j][2] = 255; // blue
- }
- for (i = 184; i < 230; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 0; // green
- matrix[i][j][2] = 0; // blue
- }
- for (i = 230; i < 276; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 255; // green
- matrix[i][j][2] = 255; // blue
- }
- for (i = 276; i < 322; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 0; // green
- matrix[i][j][2] = 0; // blue
- }
- for (i = 322; i < 368; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 255; // green
- matrix[i][j][2] = 255; // blue
- }
- for (i = 368; i < 414; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 0; // green
- matrix[i][j][2] = 0; // blue
- }
- for (i = 414; i < 460; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 255; // green
- matrix[i][j][2] = 255; // blue
- }
- for (i = 460; i < 506; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 0; // green
- matrix[i][j][2] = 0; // blue
- }
- for (i = 506; i < 552; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 255; // green
- matrix[i][j][2] = 255; // blue
- }
- for (i = 552; i < 598; i++)
- for (j = 0; j < windw; j++)
- {
- matrix[i][j][0] = 255; // red
- matrix[i][j][1] = 0; // green
- matrix[i][j][2] = 0; // blue
- }
- // Синий прямоугольник
- for (i = 276; i < 598; i++)
- for (j = 0; j < windw / 2; j++) {
- matrix[i][j][0] = 0; // red
- matrix[i][j][1] = 0; // green
- matrix[i][j][2] = 139; // blue
- }
- // Звёзды
- for (i = windh/2+16; i < 598; i += 50)
- for (j = 38; j < windw / 2; j += 60)
- for (int k = j - 9; k <= j + 9; k++) {
- if (k == j - 9 or k == j + 9) {
- for (int l = i + 2; l <= i + 2; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- if (k == j - 8 or k == j + 8) {
- for (int l = i + 1; l <= i + 2; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- if (k == j - 7 or k == j + 7) {
- for (int l = i; l <= i + 2; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- if (k == j - 6 or k == j + 6) {
- for (int l = i - 3; l <= i + 3; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- if (k == j - 5 or k == j + 5) {
- for (int l = i - 10; l <= i + 3; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- if (k == j - 4 or k == j + 4) {
- for (int l = i - 9; l <= i + 4; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- if (k == j - 3 or k == j + 3) {
- for (int l = i - 8; l <= i + 5; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- if (k == j - 2 or k == j + 2) {
- for (int l = i - 7; l <= i + 6; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- if (k == j - 1 or k == j + 1) {
- for (int l = i - 6; l <= i + 8; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- if (k == j) {
- for (int l = i - 6; l <= i + 10; l++) {
- matrix[l][k][0] = 255; // red
- matrix[l][k][1] = 255; // green
- matrix[l][k][2] = 255; // blue
- }
- }
- }
- glutPostRedisplay();
- }
- int main(int argc, char* argv[])
- {
- glutInit(&argc, argv);
- glutInitWindowSize(windw, windh);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
- (void)glutCreateWindow("Flag");
- glutDisplayFunc(display);
- glutInitWindowPosition(100, 100);
- glClearColor(0, 0, 0, 1.0f);
- glutIdleFunc(flag);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement