0

さて、私の小さなアルバムアプリ(Flash / AS3ですが、言語は関係ありません)では、各ページに5x4の写真グリッドがあります。ただし、目立たせたい写真もあるので、1x1のスペースを占める代わりに、2x2のスペースを占める写真もあります。

したがって、ページを順番に塗りつぶすために反復している画像オブジェクトの配列がある場合... a)ページが塗りつぶされたとき、およびb)2x2の写真が収まるかどうかを追跡するための最良の方法は何ですかグリッド上の特定のポイントに?

たとえば、この場合、最初の4枚の写真(xでマーク)が配置されています。5番目の写真は2x2です...明らかに1行目の5列には収まりません。位置...次の行に配置する必要があること、および1x5番目の位置が次の1x1写真用に開いていることを決定するための優れたアルゴリズムは何ですか?

XXXXO
OOOOO
OOOOO
OOOOO
4

1 に答える 1

0

可能であれば、最初に大きな画像を配置する方が簡単でしょう。そうすれば、残りのすべてのスペースを小さな画像で埋めることができるからです。

したがって、これらの写真をリストから引き出す場合は、大きな写真 (または 2 つまたは 3 つ、必要に応じて) が見つかるまで先に進み、それらを配置します。次に、開始した場所に戻り、未使用の画像を埋めます (もちろん、大きな画像はスキップします)。それがすべて満たされているかどうかを追跡するために、20 に達するまで、小さな画像の場合は 1、大きな画像の場合は 4 をカウントするカウンターを保持できます。

于 2009-11-24T16:59:05.830 に答える