(これは私の他の質問に関連しています、ここを参照してください)
3つのウィンドウがある画面を想像してください。
これらをサポートしながら、これを表す効率的なデータ構造を見つけたいのですが。
- 特定のウィンドウを他のウィンドウと重複せずに配置できる座標のリストを返します
- 上記の例で、サイズ2x2のウィンドウを挿入する場合、可能な位置は(8、6)、(8、7)、..になります。
- アスペクト比を維持しながら、他のウィンドウと重ならないように画面上のウィンドウのサイズを変更する
- x、yの位置にウィンドウを挿入します(ウィンドウが重ならない場合)
今の私の素朴なアプローチは、ウィンドウの配列を維持し、画面上のすべてのポイントを調べて、ウィンドウのいずれかにあるかどうかをチェックすることです。これは、ここで、画面の幅、高さであり、それにウィンドウの数です。一般に、各ウィンドウが多くのスペースをとる場合、は小さくなります(たとえば、<10)。