Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<graphics.h>
- #include <cmath>
- #define PI 3.1415
- using namespace std;
- void waitForLeftMouseClick();
- int O[120]=
- {
- 468, 36, 305, 36, 305,220, 313,228, 804,228,
- 751,161, 751,161, 730,139, 706,119, 682,101,
- 655, 85, 628, 71, 600, 59, 571, 50, 541, 43,
- 510, 38, 480, 36, 449, 36, 468, 36, 36,260,
- 36,228, 397,228, 397,851, 366,848, 336,842,
- 306,834, 276,824, 276,284, 252,260, 36,260
- };
- int P[76]= { 468, 36, 305, 36, 305,220, 313,228, 804,228,
- 751,161, 751,161, 730,139, 706,119, 682,101,
- 655, 85, 628, 71, 600, 59, 571, 50, 541, 43,
- 510, 38, 480, 36, 449, 36, 468, 36
- };
- int Q[44]= { 36,260,
- 36,228, 397,228, 397,851, 366,848, 336,842,
- 306,834, 276,824, 276,284, 252,260, 36,260
- };
- int unu, doi;
- void scalare(int *poligon,int dim,int Xc,int Yc,double Sx,double Sy)
- {
- for(int i=0; i<dim; i++)
- {
- poligon[2*i] = Xc +(int) (Xc-poligon[2*i]) * Sx;
- poligon[2*i+1] = Yc +(int)(Yc-poligon[2*i+1]) *Sy;
- }
- }
- void calculez_centrul(int* a,int dim,int& xc,int& yc)
- {
- xc=yc=0;
- for(int i=0; i<dim; i++)
- {
- xc += a[2*i];
- yc += a[2*i+1];
- }
- xc/=dim;
- yc/=dim;
- circle(xc,yc,7);
- }
- int centrul(int* a,int dim,int& xc,int& yc)
- {
- xc=yc=0;
- for(int i=0; i<dim; i++)
- {
- xc += a[2*i];
- yc += a[2*i+1];
- }
- xc/=dim;
- yc/=dim;
- unu=xc;
- doi=yc;
- return 0;
- }
- void translatie(int *poligon,int dim,int tx,int ty)
- {
- for(int i=0; i<dim; i++)
- {
- poligon[2*i] = poligon[2*i] + tx;
- poligon[2*i+1]= poligon[2*i+1] + ty;
- }
- }
- void rotire(int *poligon,int dim,double Xc,double Yc,double alfa)
- {
- double cosa = cos(alfa), sina = sin(alfa);
- for(int i=0; i<dim; i++)
- {
- double xi=poligon[2*i];
- double yi=poligon[2*i+1];
- poligon[2*i] = Xc + (xi-Xc)*cosa - (yi-Yc)*sina;
- poligon[2*i+1] = Yc + (xi-Xc)*sina + (yi-Yc)*cosa;
- }
- }
- int main()
- {
- int xf=0,yf=0,dimf=5;
- initwindow(800,600);
- drawpoly(19,P);
- drawpoly(11,Q);
- calculez_centrul(O,120,xf,yf);
- centrul(O,120,xf,yf);
- scalare(O,120,unu, doi,0.5,0.5);
- drawpoly(30,O);
- waitForLeftMouseClick();
- int bis1[38] = {0};
- int j = 0;
- for(int i = 0; i < 38; i++)
- {
- if(P[2*i] == P[2*i+1])
- {
- bis1[j] =P[2*i];
- j++;
- }
- }
- return 0;
- }
- void waitForLeftMouseClick()
- {
- clearmouseclick(WM_LBUTTONDOWN);
- const int DELAY = 50;
- int x, y;
- while (!ismouseclick(WM_LBUTTONDOWN))
- delay(DELAY);
- getmouseclick(WM_LBUTTONDOWN, x, y);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement