finden überlappende Rechtecke Algorithmus

sagen wir, ich habe eine riesige Menge von nicht-überlappenden Rechteck mit ganzzahligen Koordinaten, die fest ein für alle mal

Habe ich ein weiteres Rechteck mit ganzzahligen Koordinaten, deren Koordinaten verschieben (aber Sie können davon ausgehen, dass Ihre Größe ist konstant)

Was ist der effizienteste Weg, um herauszufinden, welche Rechtecke sind in sich überschneidenden (oder innen) Ein?
Kann ich nicht einfach eine Schleife durch mein set, wie es ist zu groß. Dank

edit : die Rechtecke sind alle parallel zu der Achse

  • Sie haben auf jeden Fall zu überprüfen, und jedes Rechteck. Wenn Sie zu tun, um machen Sie es schnell, auch das ist eine andere Frage...
  • Erinnert mich an ein US-immigration-Formular Frage. Umschreibung es - "Sind Sie ein terrorist?" 😀
  • Doug T : NÖ
  • Quad-Bäume: en.wikipedia.org/wiki/Quadtree
  • m0skit0 :ich dachte, der mit einer Variante des Austragungs-und beschneiden, ich glaube nicht, dass ich brauche, um zu überprüfen, alle der Rechtecke
  • Räumliche Datenstrukturen zur Rettung kommen hier. Der Nachteil ist, müssen Sie in der Regel auf der Suche eine Menge, um zu amortisieren sich die Kosten für den Bau der Struktur.
  • Versuchen Sie auch eine Suche nach "R-Bäume".
  • So, die erste position gesucht werden, die mit einer der beschriebenen Methoden. Allerdings, wenn Sie haben diese position, wenn Sie oben/unten/Links/rechts-Zeiger in Ihre Objekte, die Sie sollten in der Lage sein, um die nächste Kreuzung, ohne erneut die Suche..
  • Dumme person-Algorithmus (meint 'superrectangles' kollidieren nicht]: ich denke, man könnte organisieren, die eine Reihe von Rechtecken in Gruppen, sind begrenzt durch eine 'superrectangle'. Diese superrectangles in Gruppen, und wiederholen Sie, bis Sie haben ein mega superrectangle. Nun, sehen Sie, wenn Rechteck A ist innerhalb der Grenzen der jede der subrectangles. Wenn es ist, teilen Sie die superrectangle, und versuchen Sie es erneut. Wiederholen Sie, bis es ist nichts mehr übrig.
  • Sie sind im Grunde die Beschreibung einer bounding volume Hierarchie (In diesem Fall wäre es das Begrenzungsbereich-Hierarchie, wenn)

InformationsquelleAutor lezebulon | 2011-10-11
Schreibe einen Kommentar