サイズの異なる直方体を並べて、それらの間の接触面積が最大になるように配置しようとしています。
強引なやり方で、私はそれぞれが他の立方体と交差しない空間で立方体に配置される可能性のある位置を探しています。特定のボックスが他のボックスの特定のコレクションと交差するかどうかを確認できるJava 3D のBoundingBoxクラスを使用してこれを実現しました。これで、他のボックスとの接触面積が最も大きい場所を選択する必要がある多くの可能な場所が得られました。
私の問題は、この面積を効率的に計算する方法がわからないことです。少し例を...
ボックス 1: 左下の点 x=0,y=0,z=0; 右上点 x=10,y=10,z=10
ボックス 2: 左下の点 x=10,y=0,z=0; 右上点 x=15,y=5,z=5
ボックス 3 はボックス 1 と同じ寸法であり、接触面積が最大になるように配置する必要があります
この例では、ボックス 3 の片側がボックス 1 の右側 (ボックス 2 がある場所) を除いて一致するすべての位置が最適解です。
誰かがアイデアや解決策を持っていれば、とてもうれしいです。大きすぎなければ、無料のライブラリにも満足しています。
ありがとう!