(Dies hängt mit meiner anderen Frage zusammen, siehe hier )
Stellen Sie sich einen Bildschirm mit 3 Fenstern vor:
Ich möchte eine effiziente Datenstruktur finden, um dies darzustellen und gleichzeitig diese Aktionen zu unterstützen:
- Gibt eine Liste von Koordinaten zurück, in denen ein bestimmtes Fenster positioniert werden kann, ohne sich mit anderen zu überschneiden
- Wenn wir im obigen Beispiel ein Fenster der Größe 2x2 einfügen möchten, sind die möglichen Positionen (8, 6), (8, 7), ..
- Ändern der Größe eines Fensters auf dem Bildschirm, ohne andere Fenster zu überlappen, während das Seitenverhältnis beibehalten wird
- Fenster an Position x, y einfügen (vorausgesetzt, es überlappt sich nicht)
Im Moment besteht mein naiver Ansatz darin, eine Reihe von Fenstern beizubehalten, alle Punkte auf dem Bildschirm zu überprüfen und zu überprüfen, ob sich eines in einem der Fenster befindet. Dies ist wobei die Breite, Höhe des Bildschirms und die Anzahl der Fenster darin sind. Beachten Sie, dass im Allgemeinen klein ist (z. B. <10), wenn jedes Fenster viel Platz beansprucht.