delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/10/01/04:49:17

From: "Hargreaves, Shawn" <shawnh AT probe DOT co DOT uk>
To: "'djgpp AT delorie DOT com'" <djgpp AT delorie DOT com>
Subject: Re: collision detection
Date: Wed, 01 Oct 97 09:26:00 PDT
Message-ID: <34327EAC@relay.probe.co.uk>
Encoding: 27 TEXT

Andrew Deren writes:
> Does anyone know how to detect if two rectangles overlap each other at
> some point. Let's say we have something like this:

The easiest way to solve this is to consider in what cases the rectangles   

would _not_ collide. For the range xa1-xa2 not to overlap with the range
xb1-xb2, it must be either to the left of it or to the right of it (duh   
:-) So,
either the rightmost point of the first range must be to the left of the   
leftmost
point of the second range, or the leftmost point of the first range must   
be
to the right of the rightmost point of the second range. In code:

    ((xa2 < xb1) || (xb1 > xa2))

Negate that, and they collide if:

    ((xa2 >= xb1) && (xb1 <= xa2))

<I think: this is untested> :-) Repeat for the y coordinates, and you   
have
your intersection test...

 Shawn Hargreaves.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019