Ich versuche, rechteckige Quader mit unterschiedlicher Größe so nebeneinander zu positionieren, dass die Kontaktfläche zwischen diesen Quader maximiert ist.So berechnen Sie die Kontaktfläche eines rechteckigen Quaders mit den benachbarten Quader
In einer brutalen Art von Weg suche ich nach einer möglichen Position für jeden im Raum positioniert werden, die nicht mit anderen Quader kreuzt. Ich erkannte dies mit Java 3D BoundingBox Klasse, wo es möglich ist, zu überprüfen, ob eine bestimmte Box mit einer bestimmten Sammlung von anderen Boxen schneidet. Jetzt habe ich viele mögliche Standorte, von denen ich diejenige mit der höchsten Kontaktfläche zu anderen Boxen auswählen muss.
Mein Problem ist, dass ich nicht weiß, wie man diesen Bereich effizient berechnet. Ein kleines Beispiel ...
Box 1: unterer linker Punkt x = 0, y = 0, z = 0; oberer rechter Punkt x = 10, y = 10, z = 10
Feld 2: unterer linker Punkt x = 10, y = 0, z = 0; obere rechte Punkt x = 15, y = 5, z = 5
Box 3 die gleichen Abmessungen wie Box 1 und sollte mit einer maximalen Kontaktfläche
In diesem Beispiel sind alle Positionen, an denen eine Seite der Box angeordnet sein, 3 passt zu allen, außer der rechten Seite von Box 1 (wo Box 2 ist) sind optimale Lösungen.
Ich wäre sehr froh, wenn jemand eine Idee oder sogar eine Lösung hat. Ich bin auch mit kostenlosen Bibliotheken zufrieden, wenn sie nicht zu groß sind.
Danke!