Advertisement
Guest User

Untitled

a guest
May 20th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1.  
  2. #include <windows.h>
  3. #include <GL/glut.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6. int *pv, *pn; // variabile globale, pointeri la n si v[]
  7.  
  8. void display() {
  9. char numar[3];
  10. int i, j;
  11. float dx, ky, max;
  12. dx = 1.9 / *pn; // spatiul pe x pt un dreptunghi - dx
  13. // determinarea valorii maxime din vector
  14. max = *pv;
  15. for(i = 1; i < *pn; i++)
  16. if(max < *(pv + i))
  17. max = *(pv + i);
  18. ky = 1.8 / max; // factorul de scalare pe y, lui max ii corespunde 1.8
  19. glClearColor(1.0f, 1.0f, 1.0f, 0.05f);
  20. glClear(GL_COLOR_BUFFER_BIT);
  21. for(i = 0; i < *pn; i++){
  22. glBegin(GL_QUADS);
  23. glColor3f(0.0f, 0, 1.0f);
  24. glVertex2f(-0.95 + i * dx, -0.9);
  25. glVertex2f(-0.95 + (i + 1) * dx - 0.02, -0.9);
  26. glVertex2f(-0.95 + (i + 1) * dx - 0.02, -0.9 + *(pv+i) * ky );
  27. glVertex2f(-0.95 + i * dx, -0.9 + *(pv+i) * ky );
  28. glEnd();
  29. // afisare etichete text
  30. sprintf(numar,"%d",*(pv+i));
  31. glRasterPos2f(-0.95 + i * dx + dx / 2, -0.9 + *(pv+i) * ky + 0.05);
  32. for(j = 0; j < strlen(numar); j++)
  33. glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_10,numar[j]);
  34. }
  35. glFlush();
  36. }
  37. int main(int argc, char** argv){
  38. int i, n, v[20];
  39. pv = v;
  40. pn = &n;
  41. printf("Nr. de elemente:");
  42. fflush(stdout);
  43. scanf("%d", &n);
  44. for(i = 0; i < n; i++){
  45. printf("v[%d] = ", i);
  46. fflush(stdout);
  47. scanf("%d", &v[i]);
  48. }
  49.  
  50. glutInit(&argc, argv);
  51. glutCreateWindow("Testare mod grafic OpenGL ");
  52. glutInitWindowSize(320, 320);
  53. glutInitWindowPosition(50, 50);
  54. glutDisplayFunc(display);
  55. glutMainLoop();
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement