Assignment Help, Cloud Based ERP System, Microsoft NAV Certification
WELCOME !!

Please Register, ask for assignment solutions & post the solutions if you know any.

LETS START POSTING YOUR IDEAS AND THOUGHTS AND BUILD THE COMMUNITY OF EXPERTS.

Assignment Help, Cloud Based ERP System, Microsoft NAV Certification

Stock Market, Online Tutoring, Cloud Based ERP System, Microsoft Dynamics Reporting, Microsoft Nav Certification


You are not connected. Please login or register

View previous topic View next topic Go down  Message [Page 1 of 1]

Formatted

avatar
Administrator
Code:

 /*************************************************************************/
 /*************************************************************************

 A C++ program to illustrate the implementation of Translation Transformation.

  *************************************************************************/
 /*************************************************************************/

  /*************************************************************************

   
 

 /*************************************************************************/
 /*************************************************************************/
 //---------------------------  Header Files  ----------------------------//
 /*************************************************************************/
 /*************************************************************************/
  # include <iostream.h>
 # include <graphics.h>
 # include    <conio.h>
 # include    <math.h>

 /*************************************************************************/
 /*************************************************************************/
 //-----------------------  Function Prototypes  -------------------------//
 /*************************************************************************/
 /*************************************************************************/

 void show_screen( );

 void apply_translation(const int,int [],const int,const int);
 void multiply_matrices(const int[3],const int[3][3],int[3]);

 void Polygon(const int,const int []);
 void Line(const int,const int,const int,const int);

 /*************************************************************************/
 /*************************************************************************/
 //------------------------------  main( )  ------------------------------//
 /*************************************************************************/
 /*************************************************************************/

 int main( )
    {
      int driver=DETECT,mode;

      initgraph(&driver,&mode,"c:\\tc\\Bgi");

      show_screen( );

      int polygon_points[8]={ 270,290, 320,190, 370,290, 270,290 };

      setcolor(15);
    Polygon(4,polygon_points);

      setcolor(15);
      settextstyle(0,0,1);
    outtextxy(50,415,"*** Use Arrow Keys to apply Translation.");

      int key_code_1=0;
      int key_code_2=0;

      char Key_1=NULL;
      char Key_2=NULL;

      do
      {
        Key_1=NULL;
        Key_2=NULL;
        key_code_1=0;
        key_code_2=0;

        Key_1=getch( );
        key_code_1=int(Key_1);

        if(key_code_1==0)
        {
          Key_2=getch( );
          key_code_2=int(Key_2);
        }

        if(key_code_1==27)
        break;

        else if(key_code_1==0)
        {
          if(key_code_2==72)
              {
            setfillstyle(1,0);
              bar(40,70,600,410);

            apply_translation(4,polygon_points,0,-25);

            setcolor(10);
              Polygon(4,polygon_points);
              }

          else if(key_code_2==75)
              {
            setfillstyle(1,0);
              bar(40,70,600,410);

            apply_translation(4,polygon_points,-25,0);

            setcolor(12);
              Polygon(4,polygon_points);
              }

          else if(key_code_2==77)
              {
            setfillstyle(1,0);
              bar(40,70,600,410);

            apply_translation(4,polygon_points,25,0);

            setcolor(14);
              Polygon(4,polygon_points);
              }

          else if(key_code_2==80)
              {
            setfillstyle(1,0);
              bar(40,70,600,410);

            apply_translation(4,polygon_points,0,25);

            setcolor(9);
              Polygon(4,polygon_points);
              }
        }
      }
      while(1);

      return 0;
    }

 /*************************************************************************/
 /*************************************************************************/
 //------------------------  Funcion Definitions  ------------------------//
 /*************************************************************************/
 /*************************************************************************/

 /*************************************************************************/
 //------------------------  apply_translation( )  -----------------------//
 /*************************************************************************/

 void apply_translation(const int n,int coordinates[],
                          const int Tx,const int Ty)
    {
      for(int count_1=0;count_1
      {
        int matrix_a[3]={coordinates[(count_1*2)],
                        coordinates[((count_1*2)+1)],1};
        int matrix_b[3][3]={ {1,0,0} , {0,1,0} ,{ Tx,Ty,1} };
        int matrix_c[3]={0};

        multiply_matrices(matrix_a,matrix_b,matrix_c);

        coordinates[(count_1*2)]=matrix_c[0];
        coordinates[((count_1*2)+1)]=matrix_c[1];
      }
    }

 /************************************************************************/
 //----------------------  multiply_matrices( )  ------------------------//
 /************************************************************************/

 void multiply_matrices(const int matrix_1[3],
                  const int matrix_2[3][3],int matrix_3[3])
    {
      for(int count_1=0;count_1<3;count_1++)
      {
        for(int count_2=0;count_2<3;count_2++)
        matrix_3[count_1]+=
              (matrix_1[count_2]*matrix_2[count_2][count_1]);
      }
    }

 /*************************************************************************/
 //-----------------------------  Polygon( )  ----------------------------//
 /*************************************************************************/

 void Polygon(const int n,const int coordinates[])
    {
      if(n>=2)
      {
        Line(coordinates[0],coordinates[1],
                        coordinates[2],coordinates[3]);

        for(int count=1;count<(n-1);count++)
        Line(coordinates[(count*2)],coordinates[((count*2)+1)],
                        coordinates[((count+1)*2)],
                        coordinates[(((count+1)*2)+1)]);
      }
    }

 /*************************************************************************/
 //-------------------------------  Line( )  -----------------------------//
 /*************************************************************************/

 void Line(const int x_1,const int y_1,const int x_2,const int y_2)
    {
      int color=getcolor( );

      int x1=x_1;
      int y1=y_1;

      int x2=x_2;
      int y2=y_2;

      if(x_1>x_2)
      {
        x1=x_2;
        y1=y_2;

        x2=x_1;
        y2=y_1;
      }

      int dx=abs(x2-x1);
      int dy=abs(y2-y1);
      int inc_dec=((y2>=y1)?1:-1);

      if(dx>dy)
      {
        int two_dy=(2*dy);
        int two_dy_dx=(2*(dy-dx));
        int p=((2*dy)-dx);

        int x=x1;
        int y=y1;

        putpixel(x,y,color);

        while(x
        {
          x++;

          if(p<0)
              p+=two_dy;

          else
              {
            y+=inc_dec;
            p+=two_dy_dx;
              }

          putpixel(x,y,color);
        }
      }

      else
      {
        int two_dx=(2*dx);
        int two_dx_dy=(2*(dx-dy));
        int p=((2*dx)-dy);

        int x=x1;
        int y=y1;

        putpixel(x,y,color);

        while(y!=y2)
        {
          y+=inc_dec;

          if(p<0)
              p+=two_dx;

          else
              {
            x++;
            p+=two_dx_dy;
              }

          putpixel(x,y,color);
        }
      }
    }

 /*************************************************************************/
 //--------------------------  show_screen( )  ---------------------------//
 /*************************************************************************/

 void show_screen( )
    {
      setfillstyle(1,1);
    bar(205,26,430,38);

      settextstyle(0,0,1);
    setcolor(15);
      outtextxy(5,5,"******************************************************************************");
      outtextxy(5,17,"*-**************************************************************************-*");
      outtextxy(5,29,"*----------------------                              -----------------------*");
      outtextxy(5,41,"*-**************************************************************************-*");
      outtextxy(5,53,"*-**************************************************************************-*");

    setcolor(11);
      outtextxy(210,29,"Translation Transformation");

    setcolor(15);

      for(int count=0;count<=30;count++)
          outtextxy(5,(65+(count*12)),"*-*                                                                        *-*");

      outtextxy(5,438,"*-**************************************************************************-*");
      outtextxy(5,450,"*-------------------------                          -------------------------*");
      outtextxy(5,462,"******************************************************************************");

    setcolor(12);
      outtextxy(229,450,"Press any Key to exit.");
    }

 /*************************************************************************/
 /*************************************************************************/
 //-----------------------------  THE END  -------------------------------//
 /*************************************************************************/
 /*************************************************************************/


_________________
REGISTER AND LOG-IN TO PARTICIPATE
START POSTING YOUR IDEAS AND THOUGHTS AND BUILD THE COMMUNITY OF EXPERTS.
View user profile http://kantipur.friendhood.net

View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum