Problem Definition: Write a program to implement 2-D Transformations viz., (a) Translation (b) Rotation (c) Scaling for an Object.
#include <conio.h>
#include <iostream.h>
#include <graphics.h>
#include <math.h>
void main(){
int x1=200,y1=200,x2=250,y2=250,x3=180,y3=270,option;
int gdriver = DETECT,gmode;
initgraph(&gdriver,&gmode,”C:\TC\BGI”);
do{
cleardevice();
gotoxy(1,1);
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
cout<<“\n1.Translation 2.Scaling 3.Rotation 4.Exit\nEnter your choice: “;
cin>>option;
switch(option){
case 1:
float tx,ty;
cout<<“Enter tx & ty: “;
cin>>tx>>ty;
x1+=tx;x2+=tx;x3+=tx;
y1+=ty;y2+=ty;y3+=ty;
break;
case 2:
float sx,sy;
cout<<“Enter sx & sy: “;
cin>>sx>>sy;
x1*=sx;x2*=sx;x3*=sx;
y1*=sy;y2*=sy;y3*=sy;
break;
case 3:
float deg;
cout<<“Enter angle: “;
cin>>deg;
deg = deg*3.14/180;
int x,y;
x=x1;y=y1;
x1 = x*cos(deg)-y*sin(deg);
y1 = x*sin(deg)+y*cos(deg);
x=x2;y=y2;
x2 = x*cos(deg)-y*sin(deg);
y2 = x*sin(deg)+y*cos(deg);
x=x3;y=y3;
x3 = x*cos(deg)-y*sin(deg);
y3 = x*sin(deg)+y*cos(deg);
break;
case 4:
break;
default:
cout<<“Invalid choice”;
}
}while(option!=4);
closegraph();
}
Where is the output
Hey Aniket, I haven’t included the o/p in this program itself. But, you would be able to generate it after running it.
i cant geting output
in windows8
Hey Nitheesh, what error did it throw? OS shouldn’t matter, did you run it in Turbo C?
Fantastic work done in this program I salute you guys.
Glad to hear that!
What logic for reduce the triangle with actual value plzz helpp
Thanks for dropping a message, Naman. But, unfortunately I can’t help you with the code at the moment. I had written this about 4 years ago.
Awesome…it helped me alot
Can we use the same program for lune also??
*line
I’m not entirely sure as it was written years ago but I guess it should work as far as you use the correct syntax and follow proper steps to run it.