Quel est le moyen le plus rapide de tester si deux rectangles se croisent ?
Une recherche sur Internet m'a permis de trouver cette phrase (WOOT !), mais je ne comprends pas comment l'écrire en Javascript, elle semble être écrite dans une ancienne forme de C++.
struct
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
bool IntersectRect(const RECT * r1, const RECT * r2)
{
return ! ( r2->left > r1->right
|| r2->right < r1->left
|| r2->top > r1->bottom
|| r2->bottom < r1->top
);
}
5 votes
Je pense que vous avez fait une erreur de frappe dans votre copier/coller.
0 votes
Eh bien, c'est d'ici que ça vient et ça me semble identique tekpool.wordpress.com/2006/10/11/
5 votes
L'article original a une coquille.
r2->right left
n'a pas de sens. Il est peut-être cassé à cause de problèmes d'échappement HTML.43 votes
Je suis curieux de savoir comment vous pensez que le code ci-dessus serait différent dans une forme "moderne" de C++.
3 votes
Je suis sûr que les personnages manquants sont
<
en raison de l'échappement html.1 votes
@jamesdlin vous devriez faire de la fonction une fonction membre de la structure, prenant un paramètre. Ensuite, vous utiliserez normalement const& au lieu de const*. Vous pourriez utiliser des templates pour avoir les deux versions int, long et double, au lieu d'utiliser une macro Win32... (Cela ne compile pas non plus, car RECT finit par être une instance d'une struct non nommée, et non un nom de type). Exemple : ideone.com/bnzwl3
0 votes
Je vote pour fermer cette question comme hors-sujet car elle concerne la traduction triviale du code source dans une autre langue.
0 votes
Je suis presque sûr que c'est C.