Professional Documents
Culture Documents
h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
#include<math.h>
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;
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);
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;
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;
scanf("%d%d",&sx,&sy);
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;
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;
scanf("%d",­);
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;
scanf("%d",­);
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;
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()
a[i][0] = a[i][0];
a[i][1] = -a[i][1];
output();
}
void reflection_y()
a[i][0] = -a[i][0];
a[i][1] = a[i][1];
output();
void reflection_origan()
a[i][0] = -a[i][0];
a[i][1] = -a[i][1];
output();
void reflection_xyline()
int x,y;
{
x=a[i][0];
y=a[i][1];
a[i][0]=y;
a[i][1]=x;
output();
void reflection_nagativexyline()
int x,y;
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;
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);
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");
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("16.y=mx+c\n");
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;