Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

C Program for FTP Socket File Transfer

The main use of Line Clipping Algorithm in computer graphics is to remove objects, lines or line segments that are outside of the display panel. The transformation of the vision is relative insensitive to the position of points on the volume display - in particular, the viewer - and it is necessary to remove these points before creating the view.

#include"stdio.h"
#include"conio.h"
#include"graphics.h"
void main()
{
int gd=DETECT, gm;
float i,xmax,ymax,xmin,ymin,x1,y1,x2,y2,m;
float start[4],end[4],code[4];
clrscr();
initgraph(&gd,&gm,"");
printf("\n\tPlease enter the bottom left co-ordinate of viewport: ");
scanf("%f %f",&xmin,&ymin);
printf("\n\tPlease enter the top right co-ordinate of viewport: ");
scanf("%f %f",&xmax,&ymax);
printf("\nPlease enter the co-ordinates for starting point of line: ");
scanf("%f %f",&x1,&y1);
printf("\nPlease enter the co-ordinates for ending point of line: ");
scanf("%f %f",&x2,&y2);
for(i=0;i
{
start[i]=0;
end[i]=0;
}
m=(y2-y1)/(x2-x1);
if(x1 if(x1 >xmax) start[1]=1;
if(y1 >ymax) start[2]=1;
if(y1 if(x2 if(x2 >xmax) end[1]=1;
if(y2 >ymax) end[2]=1;
if(y2 for(i=0;i

code[i]=start[i]&&end[i];

if((code[0]==0)&&(code[1]==0)&&(code[2]==0)&&(code[3]==0))
{
if((start[0]==0)&&(start[1]==0)&&(start[2]==0)&&(start[3]==0)&&(end[0]==0)&&(end[1]==0)&&(end[2]==0)&&(end[3]==0))
{
cleardevice();
    printf("\n\t\tThe line is totally visible\n\t\tand not a clipping candidate");
    rectangle(xmin,ymin,xmax,ymax);
    line(x1,y1,x2,y2);
    getch();
}
else
{
    cleardevice();
    printf("\n\t\tLine is partially visible");
    rectangle(xmin,ymin,xmax,ymax);
    line(x1,y1,x2,y2);
    getch();

if((start[2]==0)&&(start[3]==1))
{
     x1=x1+(ymin-y1)/m;
     y1=ymin;
}
if((end[2]==0)&&(end[3]==1))
{
     x2=x2+(ymin-y2)/m;
     y2=ymin;
}
if((start[2]==1)&&(start[3]==0))
{
     x1=x1+(ymax-y1)/m;
     y1=ymax;
}
if((end[2]==1)&&(end[3]==0))
{
     x2=x2+(ymax-y2)/m;
     y2=ymax;
}
if((start[1]==0)&&(start[0]==1))
{
     y1=y1+m*(xmin-x1);
     x1=xmin;
}
if((end[1]==0)&&(end[0]==1))
{
     y2=y2+m*(xmin-x2);
     x2=xmin;
}
if((start[1]==1)&&(start[0]==0))
{
     y1=y1+m*(xmax-x1);
     x1=xmax;
}
if((end[1]==1)&&(end[0]==0))
{
     y2=y2+m*(xmax-x2);
     x2=xmax;
}

clrscr();
cleardevice();
printf("\n\t\tAfter clippling:");
rectangle(xmin,ymin,xmax,ymax);
line(x1,y1,x2,y2);
getch();
}
}
else
{
    clrscr();
    cleardevice();
    printf("\nLine is invisible");
    rectangle(xmin,ymin,xmax,ymax);
}
getch();
closegraph();
}
Input:
Please enter the bottom left co-ordinate of viewport: 100 100
Please enter the top right co-ordinate of viewport: 400 400
Please enter the coordinates for starting point of line: 120 60
Please enter the coordinates for ending point of line: 350 450
Output:




This post first appeared on Ask For Program, please read the originial post: here

Share the post

C Program for FTP Socket File Transfer

×

Subscribe to Ask For Program

Get updates delivered right to your inbox!

Thank you for your subscription

×