Imaginez que vous avez une cour avec une clôture autour d'elle, ce qui pourrait ressembler à ceci:algorithme rapide pour détecter si une forme rectangulaire croise une limite rectangulaire
______ ________
| |_| _|
| |_
| _ ___|
|__ |_| |
| |__
___| _ |
| | | |_
|________| |______|
Don't ask why it's a weird shape, it's your yard, I didn't make it.
..where cette petite boîte au milieu est un peu arbitraire objet carré. Si cet objet se déplaçait dans n'importe quelle direction vers le bord de votre jardin, comment le détecteriez-vous lorsque l'objet entrerait en collision avec votre clôture?
Et si votre cour était des milliers de fois plus grande et qu'il y avait beaucoup d'arêtes à surveiller? Comment pourriez-vous résoudre efficacement ce problème alors?
Donc, si l'un des quatre carrés de l'arbre partage une partie ou la totalité de son emplacement avec l'objet, j'ai une collision? cela pourrait juste fonctionner. – imkendal
La solution simple que j'ai donnée ne fait que stocker des points (emplacements) dans l'arbre, pas des plages ou des rectangles. En tant que tel, un ou plusieurs de vos emplacements adjacents sont dans l'arbre, ou ils ne le sont pas. Il n'y a pas de "quelques" ici. Il existe des variantes plus sophistiquées qui utilisent des groupes d'emplacements pour stocker moins dans l'arbre. – phs
Je vois, merci beaucoup – imkendal