Friday 27 September 2013

2D Transformation - Reflection | Computer Graphics Lab Manual | IT department | Final Year




#include
#include
#include
#include
void display(int);
int a[10][4],b[10][4],r[4][4],n,ch,i,j,k;
void main(){
int gd=VGA,gm=VGAMED;
initgraph(&gd,&gm,"c:\\tc\\bgi");
while(1){
cleardevice();
setbkcolor(15);
setcolor(8);
settextstyle(1,0,3);
cout<<"1.Refection about X axis";
cout<<"\n2.Refection about Y axis";
cout<<"\n3.Refection about XY axis";
cout<<"\n Enter your choice:";
cin>>ch;
switch(ch)
{ case 1:
display(ch);
break;
case 2:
display(ch);
break;
case 3:
display(ch);
break;
default:
cout<<"Thank You";
exit(0);
}}}
void display(int c)
{cleardevice();
gotoxy(30,10);
cout<<"\nEnter number of edges:";
cin>>n;
cout<<"\nEnter points:";
for(i=1;i<=n;i++)
{cin>>a[i][1]>>a[i][2];
a[i][3]=0;}
cleardevice();
line(319,0,319,479);
line(0,239,639,239);
int p=319;
int q=239;
for(i=1;i<=n-1;i++)
line(p+a[i][1],q-a[i][2],p+a[i+1][1],q-a[i+1][2]);
line(p+a[n][1],q-a[n][2],p+a[1][1],q-a[1][2]);
settextstyle(1,0,3);
switch(c)
{case 1:
outtextxy(400,450,"Reflection about X axis");
r[1][1]=1;r[1][2]=0;r[1][3]=0;
r[2][1]=0;r[2][2]=-1;r[2][3]=0;
r[3][1]=0;r[3][2]=0;r[3][3]=1;
break;
case 2:
outtextxy(20,20,"Reflection about Y axis");
r[1][1]=-1;r[1][2]=0;r[1][3]=0;
r[2][1]=0;r[2][2]=1;r[2][3]=0;
r[3][1]=0;r[3][2]=0;r[3][3]=1;
break;
case 3:
outtextxy(20,450,"Reflection about XY axis");
r[1][1]=-1;r[1][2]=0;r[1][3]=0;
r[2][1]=0;r[2][2]=-1;r[2][3]=0;
r[3][1]=0;r[3][2]=0;r[3][3]=1;
break;}
for(i=1;i<=n;i++)
{for(j=1;j<=3;j++){
b[i][j]=0;
for(k=1;k<=3;k++)
{
b[i][j]=b[i][j]+(a[i][k]*r[k][j]);
}}}
for(i=1;i<=n-1;i++)
line(p+b[i][1],q-b[i][2],p+b[i+1][1],q-b[i+1][2]);
line(p+b[n][1],q-b[n][2],p+b[1][1],q-b[1][2]);
getch();
return;}





No comments:

Don't You Think this Awesome Post should be shared ??
| 2D Transformation - Reflection | Computer Graphics Lab Manual | IT department | Final Year |
Back To Top Related Posts Plugin for WordPress, Blogger...