Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <graphics.h>
- #include<math.h>
- using namespace std;
- int main()
- {
- initwindow(800, 600);
- double Sx=1.5;
- double Sy=1.5;
- int Ax=200;
- int Ay=400;
- int Cx=400;
- int Cy=300;
- int Bx=Cx;
- int By=Ay;
- int Dx=Ax;
- int Dy=Cy;
- int xM=250;
- int yM=375;
- int rec[] = {Ax,Ay,Bx,By,Cx,Cy,Dx,Dy,Ax,Ay};
- moveto(Ax,Ay);
- lineto(Cx,Cy);
- circle(xM,yM,2);
- drawpoly(5,rec);
- delay(3000);
- cleardevice();
- int alpha=30;
- int xCRot = xM + (Cx - xM)*cos(alpha*3.14/180) - (Cy - yM)*sin(alpha*3.14/180);
- int yCRot = yM + (Cx - xM)*sin(alpha*3.14/180) + (Cy - yM)*cos(alpha*3.14/180);
- int xBRot = xM + (Bx - xM)*cos(alpha*3.14/180) - (By - yM)*sin(alpha*3.14/180);
- int yBRot = yM + (Bx - xM)*sin(alpha*3.14/180) + (By - yM)*cos(alpha*3.14/180);
- int xARot = xM + (Ax - xM)*cos(alpha*3.14/180) - (Ay - yM)*sin(alpha*3.14/180);
- int yARot = yM + (Ax - xM)*sin(alpha*3.14/180) + (Ay - yM)*cos(alpha*3.14/180);
- int xDRot = xM + (Dx - xM)*cos(alpha*3.14/180) - (Dy - yM)*sin(alpha*3.14/180);
- int yDRot = yM + (Dx - xM)*sin(alpha*3.14/180) + (Dy - yM)*cos(alpha*3.14/180);
- int rectangleArray[] = {xDRot, yDRot,xCRot, yCRot, xBRot, yBRot, xARot, yARot, xDRot, yDRot };
- drawpoly(5,rectangleArray);
- moveto(xARot,yARot);
- lineto(xCRot,yCRot);
- int xAs = xM+(xARot-xM)*Sx;
- int yAs = yM+(yARot-yM)*Sy;
- int xBs = xM+(xBRot-xM)*Sx;
- int yBs = yM+(yBRot-yM)*Sy;
- int xCs = xM+(xCRot-xM)*Sx;
- int yCs = yM+(yCRot-yM)*Sy;
- int xDs = xM+(xDRot-xM)*Sx;
- int yDs = yM+(yDRot-yM)*Sy;
- int srec[] = {xAs,yAs,xBs,yBs,xCs,yCs,xDs,yDs,xAs,yAs};
- delay(3000);
- drawpoly(5, srec);
- getch();
- return 0;
- }
- ////
- /*
- #include <graphics.h>
- #include <math.h>
- int main() {
- initwindow(800, 600);
- int xC = 500;
- int yC = 350;
- int a = 100;
- int xA = xC - a;
- int xD = xA;
- int xB = xC;
- int yA = yC + a;
- int yD = yC;
- int yB = yA;
- rectangle(xD, yD, xB, yB);
- int xM = xC - (a/2);
- int yM = yC - (a/2);
- int triangle[] = {xM, yM, xC, yC, xD, yD, xM, yM};
- drawpoly(4, triangle);
- delay(2000);
- setcolor(0);
- rectangle(xD, yD, xB, yB);
- drawpoly(4, triangle);
- setcolor(15);
- double sX = 1.5;
- double sY = 0.8;
- int xCPrime = xM + (xC - xM)*sX;
- int yCPrime = yM + (yC - yM)*sY;
- int xDPrime = xM + (xD - xM)*sX;
- int yDPrime = yM + (yD - yM)*sY;
- int xAPrime = xM + (xA - xM)*sX;
- int yAPrime = yM + (yA - yM)*sY;
- int xBPrime = xM + (xB - xM)*sX;
- int yBPrime = yM + (yB - yM)*sY;
- rectangle(xDPrime, yDPrime, xBPrime, yBPrime);
- int triangle2[] = {xM, yM, xCPrime, yCPrime, xDPrime, yDPrime, xM, yM};
- drawpoly(4, triangle2);
- setcolor(0);
- rectangle(xDPrime, yDPrime, xBPrime, yBPrime);
- drawpoly(4, triangle2);
- setcolor(15);
- int alpha = 1;
- for(int i = 0; i < 360; i++) {
- int xCRot = xM + (xCPrime - xM)*cos(alpha*3.14/180) - (yCPrime - yM)*sin(alpha*3.14/180);
- int yCRot = yM + (xCPrime - xM)*sin(alpha*3.14/180) + (yCPrime - yM)*cos(alpha*3.14/180);
- int xBRot = xM + (xBPrime - xM)*cos(alpha*3.14/180) - (yBPrime - yM)*sin(alpha*3.14/180);
- int yBRot = yM + (xBPrime - xM)*sin(alpha*3.14/180) + (yBPrime - yM)*cos(alpha*3.14/180);
- int xARot = xM + (xAPrime - xM)*cos(alpha*3.14/180) - (yAPrime - yM)*sin(alpha*3.14/180);
- int yARot = yM + (xAPrime - xM)*sin(alpha*3.14/180) + (yAPrime - yM)*cos(alpha*3.14/180);
- int xDRot = xM + (xDPrime - xM)*cos(alpha*3.14/180) - (yDPrime - yM)*sin(alpha*3.14/180);
- int yDRot = yM + (xDPrime - xM)*sin(alpha*3.14/180) + (yDPrime - yM)*cos(alpha*3.14/180);
- int rectangleArray[] = {xDRot, yDRot,xCRot, yCRot, xBRot, yBRot, xARot, yARot, xDRot, yDRot };
- drawpoly(5,rectangleArray);
- int triangleRot[] = {xM, yM, xCRot, yCRot, xDRot, yDRot, xM, yM};
- drawpoly(4, triangleRot);
- delay(10);
- setcolor(0);
- drawpoly(5,rectangleArray);
- drawpoly(4, triangleRot);
- setcolor(15);
- alpha++;
- }
- getch();
- return 0;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement