Ich habe 20 (Beispiel) 2D Polygone, die von Dreiecken, 4-seitigen unregelmäßigen, 5-seitigen bis 6-seitigen Polygonen reichen. Einige von ihnen fast perfekte Rechtecke, einige von ihnen völlig unregelmäßige Formen. Alle haben maximal 3 bis 6 Seiten.Algorithmus zum Anpassen zufälliger Polygone in ein gesetztes Rechteck
Ich habe auch ein Rechteck, sagen wir mal 16 mal 9, denn das ist ein typisches Seitenverhältnis für Bildschirme.
Mein Ziel ist es, einen Weg zu finden, die Polygone innerhalb des Rechtecks zu verwirbeln und dabei möglichst wenig Platz zu verschwenden.
Ich kann sie drehen, skalieren oder nach unten verschieben sie innerhalb des Rechtecks. Die einzige Regel ist, dies zu tun, während sie optisch ansprechend gehalten werden (ich möchte sie nicht zu groß oder zu klein skalieren, sie nicht mehr als + - 45 Grad drehen, wenn möglich).
Als gefragt, hier ist ein Beispiel Bild:
Auf der linken Seite wir ein akzeptables Ergebnis zu sehen, und auf der rechten Seite, die Eingabe.
Ich habe daran gedacht, eine KI zu unterrichten, die diesen Job erledigt, aber gibt es einen Algorithmus, der dabei helfen kann?
Denken Sie daran, dass sobald ich einige Polygone in das Rechteck platziere, ich verfahrenstechnisch immer mehr auf Anfrage hinzufügen werde.
Nicht eine KI beibringen, die Arbeit zu tun, finden Sie einen Algorithmus, der Satz o liest f 2D Tricks und machen die Arbeit für Sie. Ich kann Ihnen helfen, den richtigen auszuwählen oder es zu implementieren, aber Sie müssen mir mehr Ihr Problem erklären. –
Oussama, ich dachte, ich hätte das erklärt, aber auf jeden Fall: – Kristian
Ich habe eine Leinwand (SVG-basiert), die als Rechteck fungiert. In diesem Rechteck möchte ich verschiedene Dreiecke und Polygone mit bis zu 6 Seiten füllen. Ich kann jede von ihnen drehen, skalieren und verschieben. Ich möchte nicht, dass sie sich überschneiden, und ich möchte nicht, dass sie Leerraum verlassen. Wenn ein Polygon auf der linken oder rechten Ecke ist, kann ich es über das Rechteck (ein bisschen) überlaufen lassen, damit alles so weit wie möglich ausgefüllt wird. – Kristian