Advertisement
alexx876

Untitled

Nov 10th, 2018
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include <glut.h>
  2. #include <math.h>
  3.  
  4. void drawCircle(float x, float y, float r, int amountSegments)
  5. {
  6.     glBegin(GL_TRIANGLE_FAN);
  7.     for (int i = 0; i < amountSegments; i++)
  8.     {
  9.         float angle = 2.0 * 3.1415926 * float(i) / float(amountSegments);
  10.         float dx = r * cosf(angle);
  11.         float dy = r * sinf(angle);
  12.         glVertex3f(x + dx, y + dy, 1);
  13.     }
  14.     glEnd();
  15. }
  16.  
  17. void display()
  18. {
  19.     glClear(GL_COLOR_BUFFER_BIT);
  20.  
  21.     glColor3d(0.5, 0.5, 0.5);
  22.     glBegin(GL_QUADS);
  23.     glVertex3d(80, 300, 0);
  24.     glVertex3d(100, 300, 0);
  25.     glVertex3d(100, 90, 0);
  26.     glVertex3d(80, 90, 0);
  27.  
  28.     glEnd();
  29.  
  30.     glColor3d(0.5, 0.5, 0.5);
  31.  
  32.     glBegin(GL_QUADS);
  33.     glVertex3d(60, 90, 0);
  34.     glVertex3d(120, 90, 0);
  35.     glVertex3d(120, 20, 0);
  36.     glVertex3d(60, 20, 0);
  37.  
  38.     glEnd();
  39.  
  40.     glColor3f(1.0, 0.0, 0.0);
  41.  
  42.     drawCircle(90, 32, 6, 30);
  43.    
  44.  
  45.     glColor3f(1.0, 1.0, 0.0);
  46.  
  47.     drawCircle(90, 55, 6, 30);
  48.  
  49.     glColor3f(0.0, 1.0, 0.0);
  50.  
  51.     drawCircle(90, 78, 6, 30);
  52.  
  53.  
  54.  
  55.     glFlush();
  56. }
  57.  
  58. int main(int argc, char **argv)
  59. {
  60.     glutInit(&argc, argv);
  61.     glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
  62.     glutInitWindowSize(500, 500);
  63.     glutInitWindowPosition(100, 200);
  64.     glutCreateWindow("Лабораторная работа 6");
  65.     glClearColor(1, 1, 1, 1); //set bg color
  66.     glMatrixMode(GL_PROJECTION);
  67.     glLoadIdentity();
  68.     gluOrtho2D(0, 200, 200, 0);
  69.     glutDisplayFunc(display);
  70.     glutMainLoop();
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement