C++ Programming Blog

 
 
 
# include <iostream.h>
# include <conio.h>
# include <graphics.h>
# include <math.h>

char IncFlag;
int PolygonPoints[4][2] =
    {{10,100},{110,100},{110,200},{10,200}};

int RefX = 10;
int RefY = 100;

void PolyLine()
{
    int iCnt;
    cleardevice();
    line(0,240,640,240);
    line(320,0,320,480);
    for (iCnt=0; iCnt<4; iCnt++)
    {
        line(PolygonPoints[iCnt][0],PolygonPoints[iCnt][1],
          PolygonPoints[(iCnt+1)%4][0],PolygonPoints[(iCnt+1)%4][1]);
    }
}

void Translate(int Direction)
{
    int iCnt;
    for (iCnt=0; iCnt<4; iCnt++)
    {
        PolygonPoints[iCnt][0] += Direction*RefX;
        PolygonPoints[iCnt][1] -= Direction*RefY;
    }
}

void Rotate()
{
    float Angle;
    int iCnt;
    int Tx,Ty;
    Translate(-1);
    cout<<endl;
    Angle = 30.0*(22.0/7.0)/180.0;
    for (iCnt=0; iCnt<4; iCnt++)
    {
        Tx = PolygonPoints[iCnt][0];
        Ty = PolygonPoints[iCnt][1];
        PolygonPoints[iCnt][0] = (Tx - 320)*cos(Angle) -
                     (Ty - 240)*sin(Angle) + 320;
        PolygonPoints[iCnt][1] = (Tx - 320)*sin(Angle) +
                     (Ty - 240)*cos(Angle) + 240;
    }
    Translate(1);
}

void main()
{
    int gDriver = DETECT, gMode;
    int iCnt;
    initgraph(&gDriver, &gMode, \"C:\\\\TC\\\\BGI\");
    for (iCnt=0; iCnt<4; iCnt++)
    {
        PolygonPoints[iCnt][0] += 320;
        PolygonPoints[iCnt][1] = 240 - PolygonPoints[iCnt][1];
    }
    PolyLine();
    getch();
    Rotate();
    PolyLine();
    getch();
}

    Related Post:
  1. Program to draw a 3D Bezier Surface for MxN control points

  2. Program to perform shell sort

  3. Program to illustrate an example of Inheritance

  4. Program of simple example of class and object

  5. Program to show the implementation of Hashing with Insert, Delete and search functionality using double-ended Linked List

  6. Program to draw a 3D Piece-Wise Bezier Curve of nth degree with Zeroth Order Continuity

  7. Program to illustrate the Quick Sort

  8. Program that reads an expression consisting of two non-negative integer and an operator. Determine if either integer or the result of the expres......

  9. Program that prints odd numbers, even numbers and the numbers that are divisible by 5 b/w 0 to 50

  10. Program to draw a 3D Bezier Curve of nth degree

  11. Program to illustrate the use of operator * and &

  12. Program to add, subtract, multiply, sort, search, transpose and merge matrices

  13. Program to show the projection of 3D objects using Orthographics Parallel Projection w.r.t. xy-plane and along vector v

  14. Program that displays graphical representation of tower of hanoi

  15. Program to fill different types of geometric shapes using Boundary Fill Algorithm

  16. Program to construct Newtons Backward Difference Interpolation Formula from the given distinct equally spaced data points

  17. Program to estimate the value of Second Derivative of the function at the given points from the given data using Central Difference Formula of order 2

  18. Program to reverse the sequence of the words in the sentence and display the result

  19. Program to covert a given decimal number into Roman Code

  20. Program to swap two integers

 
 
Didn't find what you were looking for? Find more on Program of rotate about reference point