Zum Hauptinhalt springen

Wie kann ich feststellen, ob sich zwei Rechtecke schneiden? Wir untersuchen die Algorithmen zur Überprüfung von Schnittpunkten für geometrische Formen

Der Schnittpunkt von zwei Rechtecken ist eine der häufigsten Fragen in Geometrie- und Programmieraufgaben. Die Grundidee besteht darin, festzustellen, ob die beiden Rechtecke gemeinsame Punkte haben.

Der Einfachheit halber nehmen wir an, dass die Rechtecke parallel zu den Koordinatenachsen angeordnet sind. Dies ermöglicht es uns, einfache Methoden zur Überprüfung der Kreuzung anzuwenden.

Eine solche Methode besteht darin, zu überprüfen, ob die linke Seite eines Rechtecks nicht rechts von der rechten Seite eines anderen Rechtecks liegt und dass die rechte Seite eines Rechtecks nicht links von der linken Seite eines anderen Rechtecks liegt. Ebenso müssen Sie die oberen und unteren Seiten überprüfen. Wenn mindestens eine dieser Bedingungen verletzt wird, schneiden sich die Rechtecke nicht.

Wie überprüfe ich den Schnittpunkt von zwei Rechtecken

Der Schnittpunkt von zwei Rechtecken kann mit ein paar einfachen Methoden überprüft werden. Einer davon basiert auf dem Vergleich der Eckpunktkoordinaten von Rechtecken.

Zunächst müssen Sie bestimmen, wie die Daten zu Rechtecken gespeichert werden. Es gibt zwei Möglichkeiten: entweder die Koordinaten der oberen linken Ecke und die Seitenbemaßungen oder die Koordinaten der oberen und unteren Ecke. Betrachten Sie in diesem Artikel die zweite Option.

Lassen Sie uns zwei Rechtecke A und B haben. Das erste Rechteck wird durch die Koordinaten der oberen linken Ecke (x1, y1) und der unteren rechten Ecke (x2, y2) angegeben, und das zweite Rechteck wird durch die Koordinaten der oberen linken Ecke (x3, y3) und der unteren rechten Ecke (x4, y4) angegeben.

Um den Schnittpunkt der beiden Rechtecke zu überprüfen, vergleichen Sie einfach die Koordinaten der oberen linken Ecke des zweiten Rechtecks mit den Koordinaten der unteren rechten Ecke des ersten Rechtecks und umgekehrt. Wenn die Koordinaten der oberen linken Ecke des zweiten Rechtecks kleiner oder gleich den Koordinaten der unteren rechten Ecke des ersten Rechtecks sind und die Koordinaten der oberen linken Ecke des ersten Rechtecks kleiner oder gleich den Koordinaten der unteren rechten Ecke des zweiten Rechtecks sind, schneiden sich die Rechtecke.

Um den Schnittpunkt von zwei Rechtecken zu überprüfen, müssen Sie daher die folgenden Überprüfungen durchführen:

if (x3  else 

Mit diesen einfachen Überprüfungen können Sie feststellen, ob sich zwei Rechtecke schneiden oder nicht. Sie können diesen Algorithmus bei Bedarf für komplexere Fälle ändern, aber in den meisten einfachen Aufgaben sind diese Überprüfungen ausreichend.

Einfache Validierungsmethoden

Es gibt einige einfache Methoden, um den Schnittpunkt von zwei Rechtecken zu überprüfen:

  • Koordinatenvergleichsmethode: überprüfen Sie, ob es mindestens einen horizontalen und vertikalen Schnittpunkt gibt. Wenn die Koordinaten eines Rechtecks außerhalb des anderen liegen, haben sie eine Gesamtfläche.
  • Methode zur Erkennung von Seiten: Prüfen Sie, ob sich die Seiten der Rechtecke schneiden. Wenn sich mindestens eine Seite eines Rechtecks mit der Seite eines anderen Rechtecks schneidet, schneiden sie sich.
  • Methode zum Überprüfen von Punkten: Überprüfen Sie, ob sich die Eckpunkte eines Rechtecks in einem anderen befinden. Wenn sich ein Eckpunkt eines Rechtecks innerhalb eines anderen Rechtecks befindet, schneiden sie sich.

Diese Methoden sind einfach und ermöglichen es Ihnen, den Schnittpunkt zweier Rechtecke ohne Verwendung komplexer Algorithmen oder mathematischer Berechnungen leicht zu überprüfen.

Überprüfen nach Koordinaten

Zuerst müssen Sie die Position jedes der Rechtecke auf der Ebene bestimmen. Dazu können Sie ihre Koordinaten der oberen linken Ecke (x, y) und ihre Breite (w) und Höhe (h) verwenden.

Anschließend können Sie die Koordinatenwerte der oberen linken Ecke und der unteren rechten Ecke jedes Rechtecks vergleichen. Wenn die X- oder Y-Koordinaten eines Rechtecks größer oder kleiner als die entsprechenden Koordinaten eines anderen Rechtecks sind, schneiden sich die Rechtecke nicht.

Wenn wir die Koordinaten der oberen linken Ecke und der unteren rechten Ecke beider Rechtecke vergleichen, haben wir sichergestellt, dass sie sich auf beiden Achsen schneiden, dann schneiden sie sich tatsächlich und die logische Bedingung dafür ist wahr.

Diese Methode ist einfach zu implementieren und ermöglicht es Ihnen, ohne komplizierte Berechnungen festzustellen, ob sich zwei Rechtecke schneiden. Es berücksichtigt jedoch keine Rotationen und Schnittpunkte anderer Formen, sondern überprüft nur den Schnittpunkt der Eckpunkte der Rechtecke.

Geometrischer Ansatz zur Schnittpunktprüfung

Hier ist ein Schritt-für-Schritt-Algorithmus, um die Kreuzung zu überprüfen:

  1. Erhalten Sie die Koordinaten der Eckpunkte des ersten und zweiten Rechtecks.
  2. Überprüfen Sie anhand der folgenden Bedingungen, ob diese Rechtecke einen gemeinsamen Punkt haben:
    • Wenn die Koordinaten des linken Scheitelpunkts des ersten Rechtecks größer oder gleich der X-Achse des rechten Scheitelpunkts des zweiten Rechtecks sind, schneiden sie sich nicht.
    • Wenn die Koordinaten des rechten Scheitelpunkts des ersten Rechtecks kleiner oder gleich der X-Achse des linken Scheitelpunkts des zweiten Rechtecks sind, schneiden sie sich nicht.
    • Wenn die Koordinaten des unteren Scheitelpunkts des ersten Rechtecks größer oder gleich der Y-Achse des oberen Scheitelpunkts des zweiten Rechtecks sind, schneiden sie sich nicht.
    • Wenn die Koordinaten des oberen Scheitelpunkts des ersten Rechtecks kleiner oder gleich der Y-Koordinate des unteren Scheitelpunkts des zweiten Rechtecks sind, schneiden sie sich nicht.
  3. Wenn keine der Bedingungen erfüllt ist, schneiden sich die Rechtecke.

Der geometrische Ansatz ermöglicht es uns daher, basierend auf den Koordinaten ihrer Eckpunkte leicht zu bestimmen, ob sich zwei Rechtecke schneiden oder nicht.