Advertisement
Guest User

Untitled

a guest
May 28th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <Windows.h>
  3. #include <glut.h>
  4. #include <iostream>
  5.  
  6. float red = 1.0f, blue = 1.0f, green = 1.0f;
  7. float angle = 0.0f;
  8.  
  9. void changeSize(int w, int h) {
  10. if (h == 0) h = 1;
  11. float ratio = w * 1.0 / h;
  12. glMatrixMode(GL_PROJECTION);
  13. glLoadIdentity();
  14. glViewport(0, 0, w, h);
  15. gluPerspective(45.0f, ratio, 0.1f, 100.0f);
  16. glMatrixMode(GL_MODELVIEW);
  17. }
  18.  
  19. void renderScene(void) {
  20. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  21. glLoadIdentity();
  22. gluLookAt(0.0f, 0.0f, 10.0f,
  23. 0.0f, 0.0f, 0.0f,
  24. 0.0f, 1.0f, 0.0f);
  25. glRotatef(angle, 1.0f, 1.0f, 0.0f);
  26. glColor3f(red, green, blue);
  27. glOrtho(0.0, 35.0, 0.0, 35.0, -1.0, 1.0);
  28.  
  29. glBegin(GL_TRIANGLES);
  30. glVertex2f(7, 7);
  31. glVertex2f(50, 7);
  32. glVertex2f(50, 50);
  33.  
  34.  
  35. glBegin(GL_TRIANGLES);
  36. glVertex2f(1, 20);
  37. glVertex2f(30, 20);
  38. glVertex2f(20, 25);
  39.  
  40. glEnd();
  41. glFlush();
  42.  
  43.  
  44. glEnd();
  45. glFlush();
  46.  
  47. angle += 0.1f;
  48. glutSwapBuffers();
  49. }
  50.  
  51.  
  52. void processSpecialKeys(int key, int x, int y) {
  53. switch (key) {
  54. case GLUT_KEY_F1:
  55. red = 0.44;
  56. green = 0.44;
  57. blue = 0.2; break;
  58. case GLUT_KEY_F2:
  59. red = 1.0;
  60. green = 1.5;
  61. blue = 0.5; break;
  62. case GLUT_KEY_F3:
  63. red = 1.0;
  64. green = 0.2;
  65. blue = 0.5; break;
  66. case GLUT_KEY_F4:
  67. red =0.4;
  68. green = 1.0;
  69. blue = 0.3; break;
  70.  
  71. }
  72. }
  73.  
  74. int main(int argc, char **argv) {
  75. glutInit(&argc, argv);
  76. glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
  77. glutInitWindowPosition(100, 100);
  78. glutInitWindowSize(400, 400);
  79. glutCreateWindow("Шедевр");
  80.  
  81. glutDisplayFunc(renderScene); //функция обновления окна
  82. glutReshapeFunc(changeSize); //изменение изображения в засимости от размера окна
  83. glutIdleFunc(renderScene); //функция для анимации, работает когда программа простаивает
  84. glutSpecialFunc(processSpecialKeys); //активация работы клавиш f1-f7 для переключения цвета
  85. glutMainLoop();
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement