Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. #include <iostream>
  2. #include<graphics.h>
  3. #include <cmath>
  4. #define PI 3.1415
  5. using namespace std;
  6. void waitForLeftMouseClick();
  7.  
  8. int O[120]=
  9. {
  10. 468, 36, 305, 36, 305,220, 313,228, 804,228,
  11. 751,161, 751,161, 730,139, 706,119, 682,101,
  12. 655, 85, 628, 71, 600, 59, 571, 50, 541, 43,
  13. 510, 38, 480, 36, 449, 36, 468, 36, 36,260,
  14. 36,228, 397,228, 397,851, 366,848, 336,842,
  15. 306,834, 276,824, 276,284, 252,260, 36,260
  16. };
  17. int P[76]= { 468, 36, 305, 36, 305,220, 313,228, 804,228,
  18. 751,161, 751,161, 730,139, 706,119, 682,101,
  19. 655, 85, 628, 71, 600, 59, 571, 50, 541, 43,
  20. 510, 38, 480, 36, 449, 36, 468, 36
  21. };
  22.  
  23. int Q[44]= { 36,260,
  24. 36,228, 397,228, 397,851, 366,848, 336,842,
  25. 306,834, 276,824, 276,284, 252,260, 36,260
  26. };
  27. int unu, doi;
  28.  
  29. void scalare(int *poligon,int dim,int Xc,int Yc,double Sx,double Sy)
  30. {
  31.  
  32. for(int i=0; i<dim; i++)
  33. {
  34. poligon[2*i] = Xc +(int) (Xc-poligon[2*i]) * Sx;
  35. poligon[2*i+1] = Yc +(int)(Yc-poligon[2*i+1]) *Sy;
  36. }
  37.  
  38. }
  39. void calculez_centrul(int* a,int dim,int& xc,int& yc)
  40. {
  41. xc=yc=0;
  42. for(int i=0; i<dim; i++)
  43. {
  44. xc += a[2*i];
  45. yc += a[2*i+1];
  46. }
  47. xc/=dim;
  48. yc/=dim;
  49. circle(xc,yc,7);
  50. }
  51.  
  52. int centrul(int* a,int dim,int& xc,int& yc)
  53. {
  54. xc=yc=0;
  55. for(int i=0; i<dim; i++)
  56. {
  57. xc += a[2*i];
  58. yc += a[2*i+1];
  59. }
  60. xc/=dim;
  61. yc/=dim;
  62. unu=xc;
  63. doi=yc;
  64. return 0;
  65. }
  66.  
  67. void translatie(int *poligon,int dim,int tx,int ty)
  68. {
  69. for(int i=0; i<dim; i++)
  70. {
  71. poligon[2*i] = poligon[2*i] + tx;
  72. poligon[2*i+1]= poligon[2*i+1] + ty;
  73. }
  74. }
  75. void rotire(int *poligon,int dim,double Xc,double Yc,double alfa)
  76. {
  77. double cosa = cos(alfa), sina = sin(alfa);
  78. for(int i=0; i<dim; i++)
  79. {
  80. double xi=poligon[2*i];
  81. double yi=poligon[2*i+1];
  82. poligon[2*i] = Xc + (xi-Xc)*cosa - (yi-Yc)*sina;
  83. poligon[2*i+1] = Yc + (xi-Xc)*sina + (yi-Yc)*cosa;
  84. }
  85. }
  86.  
  87. int main()
  88. {
  89. int xf=0,yf=0,dimf=5;
  90. initwindow(800,600);
  91. drawpoly(19,P);
  92. drawpoly(11,Q);
  93. calculez_centrul(O,120,xf,yf);
  94. centrul(O,120,xf,yf);
  95. scalare(O,120,unu, doi,0.5,0.5);
  96. drawpoly(30,O);
  97. waitForLeftMouseClick();
  98.  
  99. int bis1[38] = {0};
  100. int j = 0;
  101.  
  102. for(int i = 0; i < 38; i++)
  103. {
  104. if(P[2*i] == P[2*i+1])
  105. {
  106. bis1[j] =P[2*i];
  107. j++;
  108. }
  109. }
  110.  
  111. return 0;
  112.  
  113. }
  114. void waitForLeftMouseClick()
  115. {
  116. clearmouseclick(WM_LBUTTONDOWN);
  117. const int DELAY = 50;
  118. int x, y;
  119. while (!ismouseclick(WM_LBUTTONDOWN))
  120. delay(DELAY);
  121. getmouseclick(WM_LBUTTONDOWN, x, y);
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement