You are on page 1of 22

#include<stdio.

h>

#include<conio.h>

#include<graphics.h>

#include<stdlib.h>

#include<math.h>

int xmid , ymid,ch,chh;

int n,i,a[10][10];

void input()

printf("enter n : " );

scanf("%d",&n);

printf("enter coordinates");

for(i=0;i<n;i++)

scanf("%d%d",&a[i][0],&a[i][1]);

void output()

for(i=0;i<n-1;i++)

line(xmid+a[i][0],ymid-a[i][1],xmid+a[i+1][0],ymid-a[i+1][1]);

if(i==n-1)

line(xmid+a[i][0],ymid-a[i][1],xmid+a[0][0],ymid-a[0][1]);

}
void translation()

int tx,ty;

printf("enter tx and ty:");

scanf("%d%d",&tx,&ty);

for(i=0;i<n;i++)

a[i][0]+=tx;

a[i][1]+=ty;

output();

void rotation()

float theta,x,y;

printf("enter theta:");

scanf("%f",&theta);

theta = (theta * 3.14)/180;

for(i=0;i<n;i++)

x=(a[i][0]*(cos(theta)))-(a[i][1]*(sin(theta)));

y=(a[i][0]*(sin(theta)))+(a[i][1]*(cos(theta)));

a[i][0]=x;

a[i][1]=y;
}

output();

void scalling()

int sx,sy;

printf("Enter Sx and Sy :");

scanf("%d%d",&sx,&sy);

for(i=0;i<n;i++)

a[i][0]=a[i][0]*sx;

a[i][1]=a[i][0]*sy;

output();

void scaling_pivot()

int sx,sy,yf,xf;

printf("Enter Sx and Sy :");

scanf("%d%d",&sx,&sy);

printf("Enter xf and yf");

scanf("%d%d",&xf,&yf);

for(i=0;i<n;i++)

a[i][0]=((a[i][0]*sx)+(xf*(1-sx)));

a[i][1]=((a[i][1]*sy)+(yf*(1-sy)));
}

output();

void rotation_pivot()

float theta;

float x,y;

float xr,yr;

printf("enter theta:");

scanf("%f",&theta);

scanf("%f%f",&xr,&yr);

theta=(theta*3.14)/180;

for(i=0;i<n;i++)

x=(xr+(a[i][0]-xr)*(cos(theta)))-((a[i][1]-yr)*(sin(theta)));

y=(yr+(a[i][0]-xr)*(sin(theta)))+((a[i][1]-yr)*(cos(theta)));

a[i][0]=x;

a[i][1]=y;

output();

void xshear()

int shx;

printf("enter the x shearing coordinates:");

scanf("%d",&shx);

for(i=0;i<n;i++)
{

a[i][0]+=shx*a[i][1];

a[i][1]=a[i][1];

output();

void yshear()

int shy;

printf("enter the y shearing coordinates:");

scanf("%d",&shy);

for(i=0;i<n;i++)

a[i][0]=a[i][0];

a[i][1]+=shy*a[i][0];

output();

void xref()

int xref=1,shy;

printf("enter the y shearing coordinate:");

scanf("%d",&shy);

for(i=0;i<n;i++)

a[i][0]=a[i][0];
a[i][1]=a[i][1]+shy*(a[i][0]-xref);

output();

void yref()

int yref=1,shx;

printf("enter the x shearing coordinate:");

scanf("%d",&shx);

for(i=0;i<n;i++)

a[i][0]=a[i][0]+shx*(a[i][0]-yref);

a[i][1]=a[i][1];

output();

void reflection_x()

for(i=0; i<n; i++)

a[i][0] = a[i][0];

a[i][1] = -a[i][1];

output();
}

void reflection_y()

for(i=0; i<n; i++)

a[i][0] = -a[i][0];

a[i][1] = a[i][1];

output();

void reflection_origan()

for(i=0; i<n; i++)

a[i][0] = -a[i][0];

a[i][1] = -a[i][1];

output();

void reflection_xyline()

int x,y;

for(i=0; i<n; i++)

{
x=a[i][0];

y=a[i][1];

a[i][0]=y;

a[i][1]=x;

output();

void reflection_nagativexyline()

int x,y;

for(i=0; i<n; i++)

x=a[i][0];

y=a[i][1];

a[i][0]=-y;

a[i][1]=-x;

output();

void reflection_tangent()

float theta,x,y,m,c;

printf("enter m and c");

scanf("%f%f",&m,&c);
theta=(3.14/2)-(atan(m));

for(i=0;i<n;i++)

a[i][1]-=c;

rotation(theta);

for(i=0;i<n;i++)

a[i][0]=-a[i][0];

theta=-theta;

rotation(theta);

for(i=0;i<n;i++)

a[i][1]+=c;

output();

int main()

char str[3];

int gd=DETECT,gm;

initgraph(&gd,&gm,"c:\\turboc3\\bgi");

xmid=getmaxx()/2;

ymid=getmaxy()/2;

line(0,ymid,getmaxx(),ymid);
line(xmid,0,xmid,getmaxy());

for(i=xmid+50;i<getmaxx();i=i+50)

outtextxy(i,ymid-3,"|");

itoa(i-xmid,str,10);

outtextxy(i,ymid+3,str);

for(i=ymid-50;i>0;i=i-50)

outtextxy(xmid,i,"-");

itoa(ymid-i,str,10);

outtextxy(xmid+5,i,str);

for(i=xmid-50;i>0;i=i-50)

outtextxy(i,ymid-3,"|");

itoa(i-xmid,str,10);

outtextxy(i-6,ymid+3,str);

for(i=ymid+50;i<getmaxy();i=i+50)

{
outtextxy(xmid,i,"-");

itoa(-(ymid-i),str,10);

outtextxy(xmid+10,i,str);

printf("1.Translation\n2.rotation \n3.scaling\n4.pivot scaling\n5.pivot rotation\n6.sharing");

printf("\n10. reflection \nenter your choice");

scanf("%d",&ch);

switch(ch)

case 1:

input();

output();

translation();

break;

case 2:

input();

output();

rotation();

break;

case 3:

input();

output();

scalling();

break;

case 4:

input();
output();

scaling_pivot();

break;

case 5:

input();

output();

rotation_pivot();

break;

case 6:

printf("66. X shear\n");

printf("7. Y shear\n");

printf("8. X ref\n");

printf("9. Y ref\n");

printf("Enter your choice : ");

scanf("%d",&chh);

switch(chh)

case 66:

input();

output();

xshear();

output();

break;

case 7:

input();

output();
yshear();

output();

break;

case 8:

input();

output();

xref();

output();

break;

case 9 :

input();

output();

yref();

output();

break;

break;

case 10:

printf("11. X axis\n");

printf("12. Y axis\n");

printf("13. orign\n");

printf("14 x=y axis\n");

printf("15. x=-y axis\n");

printf("16.y=mx+c\n");

printf("Enter your choice : ");

scanf("%d",&chh);

switch(chh)
{

case 11:

input();

output();

reflection_x();

output();

break;

case 12:

input();

output();

reflection_y();

output();

break;

case 13:

input();

output();

reflection_origan();

output();

break;

case 14:

input();

output();

reflection_xyline();

output();

break;

case 15:

input();
output();

reflection_nagativexyline();

break;

case 16:

input();

output();

reflection_tangent();

output();

break;

break;

getch();

return 0;

You might also like