Advertisement
Guest User

Untitled

a guest
May 26th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. // OpenGL_lab1.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <stdlib.h>
  6. #include "glut.h"
  7. #include <cmath>
  8.  
  9. using namespace std;
  10.  
  11. int wybor;
  12. const double PI = 3.14;
  13.  
  14. enum
  15. {
  16. EXIT,
  17. Points,
  18. Lines,
  19. LinesLoop,
  20. Triangles,
  21. TrianglesStrip,
  22. TriangleFan,
  23. Quads,
  24. QuadStrip,
  25. Polygon
  26.  
  27. };
  28.  
  29. void DisplayScene()
  30. {
  31. glClearColor(0.0, 0.0, 0.0, 1.0);
  32. glClear(GL_COLOR_BUFFER_BIT);
  33.  
  34. switch (wybor)
  35. {
  36. case Points:
  37. glBegin(GL_POINTS);
  38. glColor3f(0.68, 0.85, 0.9);
  39. break;
  40.  
  41. case Lines:
  42. glBegin(GL_LINES);
  43. glColor3f(0.68, 0.85, 0.9);
  44. break;
  45.  
  46. case LinesLoop:
  47. glBegin(GL_LINE_LOOP);
  48. glColor3f(0.68, 0.85, 0.9);
  49. break;
  50.  
  51. case Triangles:
  52. glBegin(GL_TRIANGLES);
  53. glColor3f(0.68, 0.85, 0.9);
  54. break;
  55.  
  56. case TrianglesStrip:
  57. glBegin(GL_TRIANGLE_STRIP);
  58. glColor3f(0.68, 0.85, 0.9);
  59. break;
  60.  
  61. case TriangleFan:
  62. glBegin(GL_TRIANGLE_FAN);
  63. glColor3f(0.68, 0.85, 0.9);
  64. break;
  65.  
  66. case Quads:
  67. glBegin(GL_QUADS);
  68. glColor3f(0.68, 0.85, 0.9);
  69. break;
  70.  
  71. case QuadStrip:
  72. glBegin(GL_QUAD_STRIP);
  73. glColor3f(0.68, 0.85, 0.9);
  74. break;
  75.  
  76. case Polygon:
  77. glBegin(GL_POLYGON);
  78. glColor3f(0.68, 0.85, 0.9);
  79. break;
  80.  
  81. case EXIT:
  82. break;
  83. }
  84. double x, y;
  85. for (int i = 0; i < 20; i++)
  86. {
  87. y = 0.5*sin((2 * PI*i) / 20.0);
  88. x = 0.5*cos((2 * PI*i) / 20.0);
  89. glVertex2f(x, y);
  90. }
  91.  
  92. glEnd();
  93.  
  94. glFlush();
  95.  
  96. glutSwapBuffers();
  97.  
  98. }
  99.  
  100. void Reshape(int width, int height)
  101. {
  102. DisplayScene();
  103. }
  104.  
  105.  
  106. void Menu(int value)
  107. {
  108. wybor = value;
  109. DisplayScene();
  110. }
  111.  
  112. int main(int argc, char *argv[])
  113. {
  114. glutInit(&argc, argv);
  115. glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
  116. glutInitWindowSize(500, 500);
  117. glutCreateWindow("Pierwszy program");
  118. glutDisplayFunc(DisplayScene);
  119. glutReshapeFunc(Reshape);
  120.  
  121. glutCreateMenu(Menu);
  122.  
  123. glutAddMenuEntry("Punkty", Points);
  124. glutAddMenuEntry("Linie", Lines);
  125. glutAddMenuEntry("LinieLoop", LinesLoop);
  126. glutAddMenuEntry("Trójkąty", Triangles);
  127. glutAddMenuEntry("TrójkątyStrip", TrianglesStrip);
  128. glutAddMenuEntry("TrójkątyFan", TriangleFan);
  129. glutAddMenuEntry("Czworokąt", Quads);
  130. glutAddMenuEntry("CzworokątStrip", QuadStrip);
  131. glutAddMenuEntry("Wielokąt", Polygon);
  132. glutAddMenuEntry("WYJŚCIE", EXIT);
  133.  
  134. glutAttachMenu(GLUT_RIGHT_BUTTON);
  135. glutMainLoop();
  136. return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement