Ich habe ein paar Lederbögen bestellt, aus denen ich durch Zusammennähen von Kanten Jonglierbälle bauen möchte. Ich benutze die platonischen Körper für die Form der Kugeln.
Ich kann die Lederbögen scannen und ein Polygon erzeugen, das der Form des Lederbogens nahekommt (wie Sie wissen, handelt es sich um Tierhaut, die nicht in Rechtecken vorliegt).
Jetzt möchte ich die Größe meines Jonglierballs maximieren.
In meinem Beispiel sind die Polygone reguläre Polygone, aber ich suche nach einer Lösung mit einfachen Polygonen.
Was ist der größte Skalierungsfaktor, den ich auf meine Polygone anwenden kann, damit sie alle in das Blatt passen?
Ich versuche, den Abfall so gering wie möglich zu halten, indem ich so viel Material wie möglich verwende.
Offensichtlich vergrößert das Schneiden des Polyedernetzes in einzelne Polygone den Kombinationsspielraum, verringert jedoch auch die Qualität der endgültigen Geometrie, da mehr Nähfehler und Fehler auftreten. Bei dieser Frage geht es jedoch nicht darum, die verschiedenen Arten der Entfaltung eines Polyeders aufzuzählen. Sie können unabhängig voneinander betrachtet werden. Die Polygone sind also einfache Polygone.
Formal:
Eingang:
- : ein einfaches Polygon (das Ziel)
- : Die Menge der Polygone, die ich platzieren möchte
- : ein Graph von n einfachen Polygonen - jeder Knoten repräsentiert ein einfaches Polygon in S , und es gibt eine Kantenkante zwischen jedem Paar von Polygonen, die eine gemeinsame Kante teilen
- (Materialverbrauch und Konnektivität)
Ausgabe:
- ein Skalierungsfaktor
- , ein Teilgraph von G
- : ein Ort und ein Winkel für jedes Polygon in V ( G )
- ein Maß für die Qualität der Lösung: m = α . f + β . | E ( H ) |
Maximiere unter folgenden Bedingungen:
- (1)
- (2)
- für jedes Polygon in S liegt S i, skaliert um einen Faktor f an der Stelle L o c ( S i ) innerhalb von P (3)
- Polygone in überlappen sich nicht (4)
(V (G) sind die Eckpunkte im Diagramm, und S ist die Menge der Polygone, aber sie beschreiben dieselbe Menge von Objekten. Vielleicht gibt es eine kompaktere Möglichkeit, dies zu tun.)
Erklärung der Bedingungen:
- (1) Ich möchte, dass alle Polygone im endgültigen Layout sind
- (2) Einige Verbindungen können bei Bedarf unterbrochen werden
- (3) (4) Der Ball besteht aus Leder
Hier ist das Zielpolygon
Hier ist die Menge der Polygone, die ich packen möchte: