Unit-IV; Professional Sales Representative (PSR).pptx
collisiondetection
1. Practical No. 5
TITLE: Collision Detection
AIM: Detecting a Collision of 2 2D-objects based on Min-max test or Bounding Box test.
DESCRIPTION:
● Collision detection between 2D objects is effected by comparing the minimum-maximum
x- and y- events for two shapes/objects.
● Min-Max Test:
If A and B are 2 objects having extends(x-mina, x-maxa, y-mina, y-maxa)
(x-minb, x-maxb, y-minb, y-maxb) then a horizontal overlap or touch condition is
impossible if:
x-minb > x-maxa OR x-mina > x-maxb.
Similarly vertical overlap or touch condition is impossible if:
y-minb > y-maxa OR y-mina > y-maxb.
SOURCE CODE:
/*Collision Detection*/
#include<graphics.h>
#include<stdio.h>
2. #include<conio.h>
#include<dos.h>
#include<math.h>
int lx,ly,lx1,ly1,l1_x,l1_y,l2_x,l2_y,l3_x,l3_y;
int l1_x1,l1_y1,l2_x1,l2_y1,l3_x1,l3_y1;
int l4_x,l4_y,l4_x1,l4_y1,maxx,maxy,minx,miny;
float x,y,m,x3,y3;
int getmax_x(int,int,int,int);
int getmax_y(int,int,int,int);
int getmin_x(int,int,int,int);
int getmin_y(int,int,int,int);
int collision(int,int,int,int,int,int);
void draw_rectangle();
void main()
{
int i,ch=32,co;
int gm,gd=DETECT;
//clrscr();
initgraph(&gd,&gm,"C:TCBGI");
draw_rectangle();
printf("nInput line coordinatesn");
scanf("%d %d %d %d",&l4_x,&l4_y,&l4_x1,&l4_y1);
maxx=getmax_x(lx,l1_x,l2_x,l3_x);
maxy=getmax_y(ly,l1_y,l2_y,l3_y);
minx=getmin_x(lx1,l1_x1,l2_x1,l3_x1);
miny=getmin_y(ly1,l1_y1,l2_y1,l3_y1);
line(l4_x,l4_y,l4_x1,l4_y1);
//moveto(500,500);
//printf("maxx=%dn maxy=%3dn minx=%4dn miny=%6dn",maxx,maxy,minx,miny);
while(ch==32)
{
if(l4_x==l4_x1)
{
cleardevice();
draw_rectangle();
l4_y1=l4_y1+5;
l4_y=l4_y+5;