0

正方形を並べて表示し、正方形を座標で定義できる場合、複数の正方形で構成される形状を、形状全体の各エッジを定義するベクトルに単純化するにはどうすればよいでしょうか? 擬似コードまたは一般的な用語は問題ありません。

ダイアグラム

4

1 に答える 1

0

私が考えることができる最初のことは(おそらく最も効率的な方法ではない)です:

1) タイル全体のバウンディング ボックスを取得します。これは、タイルのすべての x と y の最小 (x)、最小 (y) から最大 (x)、最大 (y) です。

2) すべての行について、STATE==EMPTY で開始し、各列を繰り返します。正方形に当たると STATE が FULL に変わり、穴が見つかると EMPTY に変わります。STATE が EMPTY から FULL になるたびに、その正方形の左側の線分を保存し、STATE が FULL から EMPTY になるたびに、その正方形の右側の線分を保存します。

3)Y軸で上記を繰り返します

これで、最も外側の線分のみを含むセットができました。同一線上にある線分などを組み合わせて、全体の形状を取得できます。

これは、凸でない形状や、タイルに穴がある場合にも機能します。

于 2010-03-20T11:30:18.433 に答える