#include<stdio.h>
#include<graphics.h>
int main()
{
int gd=DETECT, gm,op,n,a[10][3];
int cnt,temp,i,j,k;
float ymax,ymin,inter_x[10],yscan;
int x[10],y[10];
float m[10],dx,dy;
printf("Enter no of vertices");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("verticesof polygon is ");
scanf("%d%d",&x[i],&y[i]);
}
x[n]=x[0];
y[n]=y[0];
initgraph(&gd,&gm,NULL);
setcolor(3);
for(i=0;i<n;i++)
{
line(x[i],y[i],x[i+1],y[i+1]);
}
ymax=0;
ymin=480;
for(i=0;i<n;i++)
{
if(y[i]>ymax)
ymax=y[i];
if(y[i]<ymin)
ymin=y[i];
}
for(i=0;i<n;i++)
{
dx=x[i+1]-x[i];
dy=y[i+1]-y[i];
if(dx==0)
m[i]=0;
else if(dy==0)
m[i]=0;
else
m[i]=(float)dy/dx;
}
for(yscan=ymax;yscan>ymin;yscan--)
{
cnt=0;
for(i=0;i<n;i++)
{
if(y[i]>yscan && y[i+1]<=yscan || y[i]<=yscan && y[i+1]>yscan)
{
if(m[i]==0)
inter_x[cnt]=x[i];
else
inter_x[cnt]=x[i]+(yscan-y[i])/m[i];
cnt++;
}
}
for(i=0;i<cnt-1;i++)
{
for(j=0;j<cnt-1;j++)
{
if(inter_x[j]>inter_x[j+1])
{
temp=inter_x[j];
inter_x[j]=inter_x[j+1];
inter_x[j+1]=temp;
}
}
}
for(j=0;j<cnt-1;j=j+2)
{
setcolor(4);
delay(100);
if(j%4==0)
line(inter_x[j]+1,yscan,inter_x[j+1]-1,yscan);
}
}
setcolor(3);
getch();
}
#include<graphics.h>
int main()
{
int gd=DETECT, gm,op,n,a[10][3];
int cnt,temp,i,j,k;
float ymax,ymin,inter_x[10],yscan;
int x[10],y[10];
float m[10],dx,dy;
printf("Enter no of vertices");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("verticesof polygon is ");
scanf("%d%d",&x[i],&y[i]);
}
x[n]=x[0];
y[n]=y[0];
initgraph(&gd,&gm,NULL);
setcolor(3);
for(i=0;i<n;i++)
{
line(x[i],y[i],x[i+1],y[i+1]);
}
ymax=0;
ymin=480;
for(i=0;i<n;i++)
{
if(y[i]>ymax)
ymax=y[i];
if(y[i]<ymin)
ymin=y[i];
}
for(i=0;i<n;i++)
{
dx=x[i+1]-x[i];
dy=y[i+1]-y[i];
if(dx==0)
m[i]=0;
else if(dy==0)
m[i]=0;
else
m[i]=(float)dy/dx;
}
for(yscan=ymax;yscan>ymin;yscan--)
{
cnt=0;
for(i=0;i<n;i++)
{
if(y[i]>yscan && y[i+1]<=yscan || y[i]<=yscan && y[i+1]>yscan)
{
if(m[i]==0)
inter_x[cnt]=x[i];
else
inter_x[cnt]=x[i]+(yscan-y[i])/m[i];
cnt++;
}
}
for(i=0;i<cnt-1;i++)
{
for(j=0;j<cnt-1;j++)
{
if(inter_x[j]>inter_x[j+1])
{
temp=inter_x[j];
inter_x[j]=inter_x[j+1];
inter_x[j+1]=temp;
}
}
}
for(j=0;j<cnt-1;j=j+2)
{
setcolor(4);
delay(100);
if(j%4==0)
line(inter_x[j]+1,yscan,inter_x[j+1]-1,yscan);
}
}
setcolor(3);
getch();
}
No comments:
Post a Comment