2017-05-04 1 views
1

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:

enter image description here

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.

+0

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. –

+0

Oussama, ich dachte, ich hätte das erklärt, aber auf jeden Fall: – Kristian

+0

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

Antwort

1

Wenn Sie möchten, dass eine AI es löst, müssen Sie eine Dienstprogrammfunktion einrichten, die optimiert werden soll.

Es könnte in Bezug auf die festgelegt werden:

  • Contiguous genutzte Fläche (zB: Wie gut passt alles zusammen)

  • Fläche von Stücken innerhalb

  • Gebiet Stücke außerhalb

Verwandte Themen