#include<stdio.h>
#include <stdlib.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
void draw2d(int,int [],int [],int,int);
void main()
{
int gd=DETECT,gm;
int x[20],y[20],tx=0,ty=0,i,fs;
int xv1,xv2,yv1,yv2;
float sx,sy;
initgraph(&gd,&gm,"");
printf("No of sides : ");
scanf("%d",&fs);
printf("Co-ordinates : ");
for(i=0;i<fs;i++)
{
printf("(x%d,y%d)",i,i);
scanf("%d%d",&x[i],&y[i]);
}
printf("Enter view port values : ");
scanf("%d%d%d%d",&xv1,&yv1,&xv2,&yv2);
cleardevice();
rectangle(0,0,639,479);
draw2d(fs,x,y,tx,ty);
sx=(xv2-xv1)/(639.0);
sy=(yv2-yv1)/(479.0);
for(i=0;i<fs;i++)
{
x[i]=xv1+(x[i])*sx;
y[i]=yv1+(y[i])*sy;
}
getch();
cleardevice();
rectangle(xv1,yv1,xv2,yv2);
draw2d(fs,x,y,tx,ty);
getch();
}
void draw2d(int fs,int x[20],int y[20],int tx,int ty)
{
int i;
for(i=0;i<fs;i++)
{
if(i!=(fs-1))
line(x[i]+tx,y[i]+ty,x[i+1]+tx,y[i+1]+ty);
else
line(x[i]+tx,y[i]+ty,x[0]+tx,y[0]+ty);
}
}
#include <stdio.h>
#include <stdlib.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
void draw2d(int,int [],int [],int,int);
void main()
{
int gd=DETECT,gm;
int x[20],y[20],x1[20],y1[20],tx=0,ty=0,i,fs;
initgraph(&gd,&gm,"");
printf("No of sides : ");
scanf("%d",&fs);
printf("Co-ordinates : ");
for(i=0;i<fs;i++)
{
printf("(x%d,y%d)",i,i);
scanf("%d%d",&x[i],&y[i]);
}
draw2d(fs,x,y,tx,ty);
printf("translation (x,y) : ");
scanf("%d%d",&tx,&ty);
while(1)
{
clrscr();
cleardevice();
printf("1. X Reflection\n\n2. Y Reflection\n\n3. Exit");
draw2d(fs,x,y,0,0);
switch(getche())
{
case '1':
for(i=0;i<fs;i++)
{
x1[i]=(tx+((x[i]-tx)*cos(M_PI))-((y[i]-ty)*sin(M_PI)));
y1[i]=y[i];
}
break;
case '2':
for(i=0;i<fs;i++)
{
x1[i]=x[i];
y1[i]=(tx+((y[i]-ty)*cos(M_PI))+((x[i]-tx)*sin(M_PI)));
}
break;
case '3':
close…
Comments
Post a Comment