Advertisement
Guest User

For Egor with ♥

a guest
Feb 26th, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.73 KB | None | 0 0
  1. #include <GL/glut.h>
  2. #include <GL/gl.h>
  3. #include <math.h>
  4. #include <stdio.h>
  5.  
  6. void draw_shape(float x0, float y0, float R, float R2) {
  7.     float x[8], y[8], N = 8;
  8.     float x2[40], y2[40], N2 = 40;
  9.  
  10.     for (int i = 0; i < N; i++) {
  11.         x[i] = R * cosf(2 * 3.14159 * i / N) + x0;
  12.         y[i] = R * sinf(2 * 3.14159 * i / N) + y0;
  13.     }
  14.    
  15.     glBegin(GL_LINES);
  16.     for (int i = 0; i < N; i++) {
  17.         if (i == 6) {
  18.             glVertex2i(x[i], y[i]);
  19.             glVertex2i(x[0], y[0]);
  20.         }
  21.         else if (i == 7) {
  22.             glVertex2i(x[i], y[i]);
  23.             glVertex2i(x[1], y[1]);
  24.         }
  25.         else {
  26.             glVertex2i(x[i], y[i]);
  27.             glVertex2i(x[i + 2], y[i + 2]);
  28.         }
  29.     }
  30.     glEnd();
  31.    
  32.  
  33.     for (int i = 0; i < N2; i++) {
  34.         x2[i] = R2 * cosf(2 * 3.14159 * i / N2) + x0;
  35.         y2[i] = R2 * sinf(2 * 3.14159 * i / N2) + y0;
  36.     }
  37.  
  38.     glBegin(GL_LINES);
  39.     for (int i = 0; i < N2; i++) {
  40.         if (i == 39) {
  41.             glVertex2i(x2[i], y2[i]);
  42.             glVertex2i(x2[0], y2[0]);
  43.         }
  44.         else {
  45.             glVertex2i(x2[i], y2[i]);
  46.             glVertex2i(x2[i + 1], y2[i + 1]);
  47.         }
  48.     }
  49.     glEnd();
  50.  
  51.  
  52.     glFlush();
  53.    
  54. }
  55.  
  56. void display() {
  57.     glClear(GL_COLOR_BUFFER_BIT);
  58.  
  59.     draw_shape(320, 240, 100, 50);
  60. }
  61.  
  62. //void reshape(int width, int height) {
  63. //  glClear(GL_COLOR_BUFFER_BIT);
  64. //
  65. //  float x = width / 2.0;
  66. //  float y = height / 2.0;
  67. //
  68. //  draw_shape(x, y, 100, 50);
  69. //}
  70.  
  71. int main(int argc, char** argv) {
  72.     glutInit(&argc, argv);
  73.     glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
  74.     glutInitWindowSize(640, 480);
  75.     glutInitWindowPosition(10, 10);
  76.     glutCreateWindow("LAB 1");
  77.     glClearColor(1.0, 1.0, 1.0, 0.0);
  78.     glColor3f(0.0,0.0,0.0);
  79.     glPointSize(4.0);
  80.     glMatrixMode(GL_PROJECTION);
  81.     glLoadIdentity();
  82.     gluOrtho2D(0, 640.0, 0, 480.0);
  83.     glutDisplayFunc(display);
  84.     //glutReshapeFunc(reshape);
  85.     glutMainLoop();
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement