/*Program to implement Ploygon Clipping */ #include #include #include #include union REGS i,o; struct pt { int x,y; }; float xl,xr,yt,yb,m,slope[20]; int bc=0,xc,yc,n=0,k,dy,dx,x,y,temp,a[20][2],xi[20]; struct point { float x,y; }; enum bound {left,right,bottom,top}; int inside(struct point p, enum bound b) { int c=1; switch(b) { case left : if(p.xxr) c=0; break; case bottom : if(p.y>yb) c=0; break; case top : if(p.y1) line(p[n-2].x,p[n-2].y,xc,yc); showmouseptr(); delay(200); } } p[n]=p[0]; hidemouseptr(); line(p[n-1].x,p[n-1].y,p[n].x,p[n].y); showmouseptr(); getmousepos(&bc,&xc,&yc); flag=1; bc=0; while(bc!=2) //window { if((bc==1) && (flag==1)) { xl=xc; yt=yc; flag=2; delay(200); } else { xr=xc; yb=yc; delay(200); } getmousepos(&bc,&xc,&yc); } hidemouseptr(); rectangle(xl,yt,xr,yb); getch(); for(b=left;b<=top;b++) { cou =-1; for(i=0;i