#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>          
void trans();
//void axis();
void scale();
void rotate();
int maxx,maxy,midx,midy;
/*void axis()
{
//          getch();
  //        cleardevice();
           
line(midx,0,midx,maxy);
           
line(0,midy,maxx,midy);
}*/
void main()
{
            int ch;
            int
gd=DETECT,gm;
           
detectgraph(&gd,&gm);
           
initgraph(&gd,&gm,"e:\\tc\\bgi");
           
printf("\n 1.Translation \n2.Scaling\n 3.Rotation \n 4.exit");
           
printf("enter your choice");
           
scanf("%d",&ch);
            do
            {
                       
switch(ch)
                       
{
                                    case 1 :             trans();
                                                           
getch();
                                                     
//    closegraph();
                                                
           break;
                                    case 2
:             scale();
                                                           
getch();
                                                     
//    closegraph();
                                                            break;
                                    case 3
:             rotate();
                                                           
getch();
                                                   
//      closegraph();
                                                           
break;
                                    case 4
:        break;
                       
}
                       
printf("enter your choice");
                       
scanf("%d",&ch);
            } while(ch<4);
}
void trans()
{
            int
x,y,z,o,x1,x2,y1,y2;
           
maxx=getmaxx();
           
maxy=getmaxy();
           
midx=maxx/2;
           
midy=maxy/2;
           
//axis();
           
bar3d(midx+50,midy-100,midx+60,midy-90,10,1);
           
printf("Enter translation factor");
           
scanf("%d%d",&x,&y);
           
printf("After translation:");
           
bar3d(midx+x+50,midy-(y+100),midx+x+60,midy-(y+90),10,1);
}
void scale()
{
            int
x,y,z,o,x1,x2,y1,y2;
           
maxx=getmaxx();
           
maxy=getmaxy();
           
midx=maxx/2;
           
midy=maxy/2;
           
//axis();
           
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
           
printf("before translation\n");
           
printf("Enter scaling factors\n");
           
scanf("%d %d %d", &x,&y,&z);
           
printf("After scaling\n");
           
bar3d(midx+(x*50),midy-(y*100),midx+(x*60),midy-(y*90),5*z,1);
}
void rotate()
{
            int
x,y,z,o,x1,x2,y1,y2;
           
maxx=getmaxx();
           
maxy=getmaxy();
           
midx=maxx/2;
           
midy=maxy/2;
           
//axis();
           
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
           
printf("Enter rotating angle");
           
scanf("%d",&o);
           
x1=50*cos(o*3.14/180)-100*sin(o*3.14/180);
           
y1=50*sin(o*3.14/180)+100*cos(o*3.14/180);
           
x2=60*cos(o*3.14/180)-90*sin(o*3.14/180);
           
y2=60*sin(o*3.14/180)+90*cos(o*3.14/180);
   //       axis();
    //      printf("After rotation about z
axis");
    //     
bar3d(midx+x1,midy-y1,midx+x2,midy-y2,5,1);
           
//axis();
           
printf("After rotation  about
x axis");
           
bar3d(midx+50,midy-x1,midx+60,midy-x2,5,1);
           
//axis();
           
printf("After rotation about yaxis");
           
bar3d(midx+x1,midy-100,midx+x2,midy-90,5,1);
}
 
No comments:
Post a Comment