1

ビンのパッキングについての私の理解では、事前に決定された、多くの場合異なるサイズのオブジェクトを、事前に決定された固定サイズの 1 つまたは複数のコンテナーまたは「ビン」に収めようとしています。固定サイズの単一のコンテナーと、それに収まる必要がある固定数の要素があるという問題があります。違いは、私の要素は固定サイズではなく、特定の任意の倍数にサイズ変更できることです。番号。例えば:

280x420 のコンテナーに完全に収まる必要がある 3 つのオブジェクトまたは要素があり、オブジェクトのサイズを 140 の倍数に変更する必要があるとします。

したがって、次のように収まる可能性があります: (または垂直方向に反転)

+----------+----------+
| 140x140  | 140x140  |
|          |          |
|          |          |
+----------+----------+
| 280x280             |
|                     |
|                     |
|                     |
|                     |
+---------------------+

または: (または水平方向に反転)

+----------+----------+
| 140x210  | 140x420  |
|          |          |
|          |          |
|          |          |
+----------+          |
| 140x210  |          |
|          |          |
|          |          |
|          |          |
+----------+----------+

最終的に、各ボックスのサイズは統計に基づいて動的に決定されます。(たとえば、1 つの項目の統計値が 90% で、他の 2 つの項目の統計値が 2% と 8% の場合、明らかに 90% の方が大きなボックスになります。) ただし、複雑になりすぎないようにしています。それはまだなので、コンテナを満たすアルゴリズムを作成することが私の主な目標です。

私はさまざまなアルゴリズムを研究してきましたが、これを試みる理想的な方法をまだ考え出していません。ポインタはありますか?例?類似の既存の数学的アルゴリズムまたはその他のアルゴリズムはありますか?


より複雑な例: 6 個のアイテム、560x420 のコンテナ。要素の JSON: { "0": "432", "1": "389", "2": "403", "3": "190", "4": "215", "5": "832" } 可能なレンダリングの 1 つ:

+----------+----------+---------------------+
| 140x280  | 140x140  | 280x140             |
| (0,1,    | (3 or 4) | (2)                 |
|    or 2) |          |                     |
|          |          |                     |
|          +----------+---------------------+
|          | 140x140  | 280x280             |
|          | (3 or 4) | (5)                 |
|          |          |                     |
|          |          |                     |
+----------+----------+                     |
| 280x210             |                     |
| (0,1, or 2)         |                     |
|                     |                     |
|                     |                     |
+---------------------+---------------------+
4

1 に答える 1

1

さらに掘り下げたところ、私が探しているのは「石積み」として知られていることがわかりました。それを少し調べてから、私がやろうとしていることを(うまくいけば)正確に行うjQueryのプラグインであるIsotopeに出会いました。それは迅速な研究でなければなりません。

http://isotope.metafizzy.co/

于 2013-07-24T16:12:47.363 に答える