Etwas konkreter:
Eine Karte ist eine Liste mit Feldern. Jedes Feld ist gleich gross, quadratisch und entweder begehbar oder nicht. Derzeit werden diese Felder als PNG Grafiken gespeichert (spart mir vorerst den Map Editor). Zusätzlich gegeben ist die Breite (und somit auch die Höhe) der Karte. Die Karten könnten relativ gross werden (128x128, vielleicht bis zu 1024x1024).
Nun möchte ich diese Felder durch möglichst wenige Rechtecke darstellen.
Gibt es dazu einen Algorithmus mit einer brauchbaren Effizienz welcher mir ein optimales Resultat (minimale Anzahl Rechtecke) liefert? Wenn ja, welcher? Wenn nicht, was für Approximationen gibt es?
Wäre es vielleicht besser einfach einen Quadtree zu verwenden (würde sich einfach generieren lassen, und wäre vermutlich auch effizient genug)? Das Problem beim Quadtree sehe ich dabei das die Karten oft nicht aus grossen unbegehbaren Flächen bestehen sondern aus vielen Wänden:
Code: Alles auswählen
X___
X___
XXX
Gruss,
Jonas