#include<stdio.h>
#include<process.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void disp(int n,float c[][3])
{
float maxx,maxy;
int i;
maxx=getmaxx();
maxy=getmaxy();
maxx=maxx/2;
maxy=maxy/2;
i=0;
while(i<n-1)
{
line(maxx+c[i][0],maxy-c[i][1],maxx+c[i+1][0],maxy-c[i+1][1]);
i++;
}
i=n-1;
line(maxx+c[i][0],maxy-c[i][1],maxx+c[0][0],maxy-c[0][1]);
setcolor(GREEN);
line(0,maxy,maxx*2,maxy);
line(maxx,0,maxx,maxy*2);
setcolor(WHITE);
}
void mul(int n,float b[][3],float c[][3],float a[][3])
{
int i,j,k;
for(i=0;i<n;i++)
for(j=0;j<3;j++)
a[i][j]=0;
for(i=0;i<n;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
{
a[i][j] = a[i][j] + (c[i][k] * b[k][j]);
}
}
void reflection(int n,float c[][3])
{
float b[10][3],a[10][3];
int i=0,ch,j;
cleardevice();
printf(“\n\t1
) ABOUT X
-AXIS”
); printf(“\n\t2
) ABOUT Y
-AXIS”
); printf(“\n\t3
) ABOUT ORIGIN”
); printf(“\n\tENTER YOUR CHOICE
: “
); clrscr();
cleardevice();
disp(n,c);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
b[i][j]=0;
if(i==j)
b[i][j]=1;
}
switch(ch)
{
case 1:
b[1][1]=-1;
break;
case 2:
b[0][0]=-1;
break;
case 3:
b[0][0]=-1;
b[1][1]=-1;
break;
case 4:
b[0][0]=0;
b[1][1]=0;
b[0][1]=1;
b[1][0]=1;
break;
case 5:
b[0][0]=0;
b[1][1]=0;
b[0][1]=-1;
b[1][0]=-1;
break;
case 6:
break;
default:
printf(“\n\tINVALID CHOICE
! “
); break;
}
mul(n,b,c,a);
setcolor(RED);
disp(n,a);
}
void shearing(int n,float c[][3])
{
float b[10][3],sh,a[10][3];
int i=0,ch,j;
cleardevice();
printf(“\n\t
* * * MENU
* * *”
); printf(“\n\tENTER YOUR CHOICE
: “
); if(ch==3)
return;
printf(“\n\tENTER THE VALUE
for SHEARING
: “
); clrscr();
cleardevice();
for(i=0;i<3;i++)
for(j=0;j<3;j++)
b[i][j]=0;
for(i=0;i<3;i++)
b[i][i]=1;
switch(ch)
{
case 1:
b[1][0]=sh;
break;
case 2:
b[0][1]=sh;
break;
case 3:
break;
default:
printf(“\n\tINVALID CHOICE
! “
); break;
}
mul(n,b,c,a);
setcolor(RED);
disp(n,a);
}
void main()
{
int i,j,k,cho,n,gd=DETECT,gm;
float c[10][3],tx,ty,sx,sy,ra;
initgraph(&gd,&gm,” “);
printf(“\nEnter the number of vertices
: “
); for(i=0;i<n;i++)
{
printf(“\nEnter the co
-ordinates of the
%d vertex
:”
,i
+1); scanf(“
%f
%f”
,&c
[i
][0],&c
[i
][1]); c[i][2]=1;
}
do
{
clrscr();
cleardevice();
printf(“\n\t\t\t
* * * MENU
* * *”
); printf(“\n\t
1) REFLECTION “
); printf(“\n\t ENTER YOUR CHOICE
: “
); switch(cho)
{
case 1:
clrscr();
cleardevice();
setcolor(BLUE);
disp(n,c);
reflection(n,c);
break;
case 2:
clrscr();
cleardevice();
setcolor(BLUE);
disp(n,c);
shearing(n,c);
break;
case 3 :
break;
default:
printf(“\n\tInvalid choice
!!”
); break;
}
}while(cho!=3);
closegraph();
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8cHJvY2Vzcy5oPgojaW5jbHVkZTxjb25pby5oPgojaW5jbHVkZTxncmFwaGljcy5oPgojaW5jbHVkZTxtYXRoLmg+CnZvaWQgZGlzcChpbnQgbixmbG9hdCBjW11bM10pCnsKZmxvYXQgbWF4eCxtYXh5OwppbnQgaTsKbWF4eD1nZXRtYXh4KCk7Cm1heHk9Z2V0bWF4eSgpOwptYXh4PW1heHgvMjsKbWF4eT1tYXh5LzI7Cmk9MDsKd2hpbGUoaTxuLTEpCnsKbGluZShtYXh4K2NbaV1bMF0sbWF4eS1jW2ldWzFdLG1heHgrY1tpKzFdWzBdLG1heHktY1tpKzFdWzFdKTsKaSsrOwp9Cmk9bi0xOwpsaW5lKG1heHgrY1tpXVswXSxtYXh5LWNbaV1bMV0sbWF4eCtjWzBdWzBdLG1heHktY1swXVsxXSk7CnNldGNvbG9yKEdSRUVOKTsKbGluZSgwLG1heHksbWF4eCoyLG1heHkpOwpsaW5lKG1heHgsMCxtYXh4LG1heHkqMik7CnNldGNvbG9yKFdISVRFKTsKfQp2b2lkIG11bChpbnQgbixmbG9hdCBiW11bM10sZmxvYXQgY1tdWzNdLGZsb2F0IGFbXVszXSkKewppbnQgaSxqLGs7CmZvcihpPTA7aTxuO2krKykKZm9yKGo9MDtqPDM7aisrKQphW2ldW2pdPTA7CmZvcihpPTA7aTxuO2krKykKZm9yKGo9MDtqPDM7aisrKQpmb3Ioaz0wO2s8MztrKyspCnsKYVtpXVtqXSA9IGFbaV1bal0gKyAoY1tpXVtrXSAqIGJba11bal0pOwp9Cn0Kdm9pZCByZWZsZWN0aW9uKGludCBuLGZsb2F0IGNbXVszXSkKewpmbG9hdCBiWzEwXVszXSxhWzEwXVszXTsKaW50IGk9MCxjaCxqOwpjbGVhcmRldmljZSgpOwpwcmludGYo4oCcXG5cdCogKiBNRU5VICogKuKAnSk7CnByaW50ZijigJxcblx0MSkgQUJPVVQgWC1BWElT4oCdKTsKcHJpbnRmKOKAnFxuXHQyKSBBQk9VVCBZLUFYSVPigJ0pOwpwcmludGYo4oCcXG5cdDMpIEFCT1VUIE9SSUdJTuKAnSk7CnByaW50ZijigJxcblx0NCkgQUJPVVQgWD1Z4oCdKTsKcHJpbnRmKOKAnFxuXHQ1KSBBQk9VVCAtWD1Z4oCdKTsKcHJpbnRmKOKAnFxuXHQ2KSBFWElU4oCdKTsKcHJpbnRmKOKAnFxuXHRFTlRFUiBZT1VSIENIT0lDRSA6ICAg4oCcKTsKc2NhbmYo4oCcJWTigJ0sJmNoKTsKY2xyc2NyKCk7CmNsZWFyZGV2aWNlKCk7CmRpc3AobixjKTsKZm9yKGk9MDtpPDM7aSsrKQpmb3Ioaj0wO2o8MztqKyspCnsKYltpXVtqXT0wOwppZihpPT1qKQpiW2ldW2pdPTE7Cn0Kc3dpdGNoKGNoKQp7CmNhc2UgMToKYlsxXVsxXT0tMTsKYnJlYWs7CmNhc2UgMjoKYlswXVswXT0tMTsKYnJlYWs7CmNhc2UgMzoKYlswXVswXT0tMTsKYlsxXVsxXT0tMTsKYnJlYWs7CmNhc2UgNDoKYlswXVswXT0wOwpiWzFdWzFdPTA7CmJbMF1bMV09MTsKYlsxXVswXT0xOwpicmVhazsKY2FzZSA1OgpiWzBdWzBdPTA7CmJbMV1bMV09MDsKYlswXVsxXT0tMTsKYlsxXVswXT0tMTsKYnJlYWs7CmNhc2UgNjoKYnJlYWs7CmRlZmF1bHQ6CnByaW50ZijigJxcblx0SU5WQUxJRCBDSE9JQ0UgISDigJwpOwpicmVhazsKfQptdWwobixiLGMsYSk7CnNldGNvbG9yKFJFRCk7CmRpc3AobixhKTsKfQp2b2lkIHNoZWFyaW5nKGludCBuLGZsb2F0IGNbXVszXSkKewpmbG9hdCBiWzEwXVszXSxzaCxhWzEwXVszXTsKaW50IGk9MCxjaCxqOwpjbGVhcmRldmljZSgpOwpwcmludGYo4oCcXG5cdCogKiAqIE1FTlUgKiAqICrigJ0pOwpwcmludGYo4oCcXG5cdDEpIFggU0hFQVJJTkfigJ0pOwpwcmludGYo4oCcXG5cdDIpIFkgU0hFQVJJTkfigJ0pOwpwcmludGYo4oCcXG5cdDMpIEVYSVQg4oCcKTsKcHJpbnRmKOKAnFxuXHRFTlRFUiBZT1VSIENIT0lDRSA6ICAg4oCcKTsKc2NhbmYo4oCcJWTigJ0sJmNoKTsKaWYoY2g9PTMpCnJldHVybjsKcHJpbnRmKOKAnFxuXHRFTlRFUiBUSEUgVkFMVUUgZm9yIFNIRUFSSU5HOiAgICAgICAg4oCcKTsKc2NhbmYo4oCcJWbigJ0sJnNoKTsKY2xyc2NyKCk7CmNsZWFyZGV2aWNlKCk7CmZvcihpPTA7aTwzO2krKykKZm9yKGo9MDtqPDM7aisrKQpiW2ldW2pdPTA7CmZvcihpPTA7aTwzO2krKykKYltpXVtpXT0xOwpzd2l0Y2goY2gpCnsKY2FzZSAxOgpiWzFdWzBdPXNoOwpicmVhazsKY2FzZSAyOgpiWzBdWzFdPXNoOwpicmVhazsKY2FzZSAzOgpicmVhazsKZGVmYXVsdDoKcHJpbnRmKOKAnFxuXHRJTlZBTElEIENIT0lDRSAhIOKAnCk7CmJyZWFrOwp9Cm11bChuLGIsYyxhKTsKc2V0Y29sb3IoUkVEKTsKZGlzcChuLGEpOwp9CnZvaWQgbWFpbigpCnsKaW50IGksaixrLGNobyxuLGdkPURFVEVDVCxnbTsKZmxvYXQgY1sxMF1bM10sdHgsdHksc3gsc3kscmE7CmluaXRncmFwaCgmZ2QsJmdtLOKAnSDigJwpOwpwcmludGYo4oCcXG5FbnRlciB0aGUgbnVtYmVyIG9mIHZlcnRpY2VzIDogICDigJwpOwpzY2FuZijigJwlZOKAnSwmbik7CmZvcihpPTA7aTxuO2krKykKewpwcmludGYo4oCcXG5FbnRlciB0aGUgY28tb3JkaW5hdGVzIG9mIHRoZSAlZCB2ZXJ0ZXggOuKAnSxpKzEpOwpzY2FuZijigJwlZiVm4oCdLCZjW2ldWzBdLCZjW2ldWzFdKTsKY1tpXVsyXT0xOwp9CmRvCnsKY2xyc2NyKCk7CmNsZWFyZGV2aWNlKCk7CnByaW50ZijigJxcblx0XHRcdCAqICogKiBNRU5VICogKiAq4oCdKTsKcHJpbnRmKOKAnFxuXHQgMSkgUkVGTEVDVElPTiDigJwpOwpwcmludGYo4oCcXG5cdCAyKSBTSEVBUklOR+KAnSk7CnByaW50ZijigJxcblx0IDMpIEVYSVTigJ0pOwpwcmludGYo4oCcXG5cdCBFTlRFUiBZT1VSIENIT0lDRTogICDigJwpOwpzY2FuZijigJwlZOKAnSwmY2hvKTsKc3dpdGNoKGNobykKewpjYXNlIDE6CmNscnNjcigpOwpjbGVhcmRldmljZSgpOwpzZXRjb2xvcihCTFVFKTsKZGlzcChuLGMpOwpyZWZsZWN0aW9uKG4sYyk7CmdldGNoKCk7CmJyZWFrOwpjYXNlIDI6CmNscnNjcigpOwpjbGVhcmRldmljZSgpOwpzZXRjb2xvcihCTFVFKTsKZGlzcChuLGMpOwpzaGVhcmluZyhuLGMpOwpnZXRjaCgpOwpicmVhazsKY2FzZSAzIDoKZXhpdCgwKTsKYnJlYWs7CmRlZmF1bHQ6CnByaW50ZijigJxcblx0SW52YWxpZCBjaG9pY2UgISHigJ0pOwpicmVhazsKfQp9d2hpbGUoY2hvIT0zKTsKZ2V0Y2goKTsKY2xvc2VncmFwaCgpOwp9