[Algo] Calcul de distance entre deux rectangles

Calcul de distance entre deux rectangles [Algo] - Algo - Programmation

Marsh Posté le 26-03-2008 à 00:29:16    

Bonsoir,
 
Pour un jeux vidéo (en XNA C#) je dois à un moment calculer la distance entre deux rectangles.
J'ai beau cherché dans ma tête et sur le net je ne trouve pas de solution pour calculer la plus petite distance possible entre deux points appartenant à deux rectangles différents.
 
J'ai bien 2/3 approximation : réduire un rectangle aux quatre coins le composant (Rectangle1 = ABCD, Rectangle2 = EFGH) et calculer les distances entre chaque points :

AE = ?
AF = ?
AG = ?
AH = ?
BE = ?
BF = ?
BG = ?
BH = ?
CE = ?
CF = ?
CG = ?
CH = ?
DE = ?
DF = ?
DG = ?
DH = ?

et prendre la plus petite valeur : mais là encore ça n'est pas super-propre ni précis...
 
Je précise que les côtés de mes rectangles sont obligatoirement parallèles aux axes X ou Y de mon repère (pas de rotation).

Reply

Marsh Posté le 26-03-2008 à 00:29:16   

Reply

Marsh Posté le 26-03-2008 à 11:56:12    

Au pif, je dirais que la distance la plus courte est celle entre 2 points appartenant à des segments parallèles.
Si les segments se superposent lorsqu'on les projette sur l'axe suivant lequel ils sont parallèles, n'importe quels points ayant la même coordonnée sur cet axe te donneront la bonne distance.
Si ce n'est pas le cas, ce seront les coins les plus proches suivant cet axe.
 
Non?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 01:20:21    

Finalement, vu les cas assez particuliers dans lesquels les rectangles évoluaient je n'ai pas eu besoin d'une fonction aussi générale (et puis le manque temps à aidé ^^).
Mais je note cette _bonne_ solution [:mechant poulet]


Message édité par _Raynor_ le 01-04-2008 à 01:20:34
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed