//Created By "Arunendra Kumar"//
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void mpsd(int,int,int,int);
int x_min,y_min,x_max,y_max;
int x1,y1,x2,y2,gd=DETECT,gm;
void main()
{
clrscr();
printf("\nEnter the value of Window co-ordinates:");
printf("(x_min,y_min) : " );
scanf("%d%d",&x_min,&y_min);
printf("(x_max,y_max) : " );
scanf("%d%d",&x_max,&y_max);
printf("\nEnter the co-ordinates of view point :");
printf("(x1,y1) :" );
scanf("%d%d",&x1,&y1);
printf("(x2,y2) :" );
scanf("%d%d",&x2,&y2);
clrscr();
initgraph(&gd,&gm,"c:\\tc\\bgi");
setcolor(RED);
rectangle(x_min,y_min,x_max,y_max);
mpsd(x1,y1,x2,y2);
getch();
}
void mpsd(int xa,int ya,int xb,int yb)
{
if( ((xa>=x_min)&&(xa<=x_max))&&((ya>=y_min)&&(ya<=y_max))&&((xb>=x_min)&&(xb<=x_max))&&((yb>=y_min)&&(yb<=y_max)) )
{
setcolor(YELLOW);
line(xa,ya,xb,yb);
}
else if( ((xa<=x_min)&&(xb<=x_min))||((ya<=y_min)&&(yb<=y_min))||((xa>=x_max)&&(xb>=x_max))||((ya>=y_max)&&(yb>=y_max)))
{
setcolor(GREEN);
line(xa,ya,xb,yb);
}
else
{
mpsd( xa,ya,((xa+xb)/2) ,((ya+yb)/2) );
mpsd( ((xa+xb)/2) ,((ya+yb)/2),xb,yb );
}
//getch();
}
//For download .CPP file click on MPSD.CPP
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void mpsd(int,int,int,int);
int x_min,y_min,x_max,y_max;
int x1,y1,x2,y2,gd=DETECT,gm;
void main()
{
clrscr();
printf("\nEnter the value of Window co-ordinates:");
printf("(x_min,y_min) : " );
scanf("%d%d",&x_min,&y_min);
printf("(x_max,y_max) : " );
scanf("%d%d",&x_max,&y_max);
printf("\nEnter the co-ordinates of view point :");
printf("(x1,y1) :" );
scanf("%d%d",&x1,&y1);
printf("(x2,y2) :" );
scanf("%d%d",&x2,&y2);
clrscr();
initgraph(&gd,&gm,"c:\\tc\\bgi");
setcolor(RED);
rectangle(x_min,y_min,x_max,y_max);
mpsd(x1,y1,x2,y2);
getch();
}
void mpsd(int xa,int ya,int xb,int yb)
{
if( ((xa>=x_min)&&(xa<=x_max))&&((ya>=y_min)&&(ya<=y_max))&&((xb>=x_min)&&(xb<=x_max))&&((yb>=y_min)&&(yb<=y_max)) )
{
setcolor(YELLOW);
line(xa,ya,xb,yb);
}
else if( ((xa<=x_min)&&(xb<=x_min))||((ya<=y_min)&&(yb<=y_min))||((xa>=x_max)&&(xb>=x_max))||((ya>=y_max)&&(yb>=y_max)))
{
setcolor(GREEN);
line(xa,ya,xb,yb);
}
else
{
mpsd( xa,ya,((xa+xb)/2) ,((ya+yb)/2) );
mpsd( ((xa+xb)/2) ,((ya+yb)/2),xb,yb );
}
//getch();
}
//For download .CPP file click on MPSD.CPP
No comments:
Post a Comment