Frage

I Suchalgorithmus Problem so zu lösen:

Ich habe einige Fenster, jedes Fenster bewegt werden kann und wieder groß, aber mit bestimmtem Verhältnis zwischen Breite und Höhe, zum Beispiel. 2: 1 (Höhe: Breite)

.

Jedes Fenster kann nicht auf andere Fenster und alle Fenster müssen vollständig sichtbar sein. Freie Fläche (Desktop-Hintergrund Sichtbarkeit) muss minimal sein.

Kann mir jemand sagen, was Algorithmus, den ich für diese Art von Problem brauchen?

Grüße,

War es hilfreich?

Lösung

Ein weiterer Ansatz, die einfacher sein könnten als Verpackung zu implementieren, wäre Ihre Bildschirmgröße in die gewünschten Anzahl von Scheiben zu unterteilen, dann wird mit einem Fenster, das erfüllt Ihre andere Anforderungen innerhalb der Scheibe. Da Sie wahrscheinlich eine kleine Anzahl von Fenstern haben werden jederzeit öffnen, und da den Bildschirm seine Größe nicht dynamisch ändern, können Sie wahrscheinlich alle Vorkehrungen im Voraus berechnen Sie für 1 bis O (100) offene Fenster benötigen.

Andere Tipps

Ein Ansatz wäre, sie zu behandeln als 2D-Packing-Problem , wie das 1D-Bin-Packing Problem. Es gibt eine Probe Algorithmus geschrieben hier zum Beispiel mit einigen guten Referenzen.

Wenn Sie die Anforderung entspannen können, dass alle Fenster haben ein bestimmtes „Seitenverhältnis“, dann wird das Problem sehr einfach. Angenommen, Sie N „Kacheln“ arrangieren auf einem einzigen Bildschirm hat, so können diese in Spalten angeordnet werden, wo die Anzahl der Spalten, ist NumCols die Quadratwurzel N aufgerundet, wenn N kein perfektes Quadrat ist. Alle Spalten von Fliesen sind von gleicher Breite. Die Anzahl der Kacheln in jeder Spalte ist dann N/NumCols abgerundet entweder nach oben oder nach unten, wie notwendig die Gesamtzahl der Spalten zu machen sein N. Dies ist, was Microsoft Excel funktioniert unter Ansicht> Alle anordnen> Fliesen-. Excel wählt mit einer weniger Kacheln auf der linken Seite des Bildschirms, um die Spalten zu setzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top